// GENERATED FILE - DO NOT EDIT.
// Generated by generate_gl_dispatch_table.py using data from gl_bindings_data.json and gl.xml.
//
// Copyright 2017 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.cpp:
//   Initialize the native bindings for ANGLE's OpenGL back-end.

#include "libANGLE/renderer/gl/DispatchTableGL_autogen.h"

#include "libANGLE/Version.h"
#include "libANGLE/renderer/gl/FunctionsGL.h"

#define ASSIGN(NAME, FP)                                            \
    do                                                              \
    {                                                               \
        FP = reinterpret_cast<decltype(FP)>(loadProcAddress(NAME)); \
    } while (0)

namespace rx
{
DispatchTableGL::DispatchTableGL() = default;

void DispatchTableGL::initProcsDesktopGL(const gl::Version &version,
                                         const std::set<std::string> &extensions)
{
#if defined(ANGLE_ENABLE_GL_DESKTOP_BACKEND)
    if (extensions.count("GL_ARB_ES2_compatibility") != 0)
    {
        ASSIGN("glClearDepthf", clearDepthf);
        ASSIGN("glDepthRangef", depthRangef);
        ASSIGN("glGetShaderPrecisionFormat", getShaderPrecisionFormat);
        ASSIGN("glReleaseShaderCompiler", releaseShaderCompiler);
        ASSIGN("glShaderBinary", shaderBinary);
    }

    if (extensions.count("GL_ARB_ES3_1_compatibility") != 0)
    {
        ASSIGN("glMemoryBarrierByRegion", memoryBarrierByRegion);
    }

    if (extensions.count("GL_ARB_ES3_2_compatibility") != 0)
    {
        ASSIGN("glPrimitiveBoundingBoxARB", primitiveBoundingBox);
    }

    if (extensions.count("GL_ARB_base_instance") != 0)
    {
        ASSIGN("glDrawArraysInstancedBaseInstance", drawArraysInstancedBaseInstance);
        ASSIGN("glDrawElementsInstancedBaseInstance", drawElementsInstancedBaseInstance);
        ASSIGN("glDrawElementsInstancedBaseVertexBaseInstance",
               drawElementsInstancedBaseVertexBaseInstance);
    }

    if (extensions.count("GL_ARB_blend_func_extended") != 0)
    {
        ASSIGN("glBindFragDataLocationIndexed", bindFragDataLocationIndexed);
        ASSIGN("glGetFragDataIndex", getFragDataIndex);
    }

    if (extensions.count("GL_ARB_buffer_storage") != 0)
    {
        ASSIGN("glBufferStorage", bufferStorage);
    }

    if (extensions.count("GL_ARB_clear_buffer_object") != 0)
    {
        ASSIGN("glClearBufferData", clearBufferData);
        ASSIGN("glClearBufferSubData", clearBufferSubData);
    }

    if (extensions.count("GL_ARB_clear_texture") != 0)
    {
        ASSIGN("glClearTexImage", clearTexImage);
        ASSIGN("glClearTexSubImage", clearTexSubImage);
    }

    if (extensions.count("GL_ARB_clip_control") != 0)
    {
        ASSIGN("glClipControl", clipControl);
    }

    if (extensions.count("GL_ARB_color_buffer_float") != 0)
    {
        ASSIGN("glClampColorARB", clampColor);
    }

    if (extensions.count("GL_ARB_compute_shader") != 0)
    {
        ASSIGN("glDispatchCompute", dispatchCompute);
        ASSIGN("glDispatchComputeIndirect", dispatchComputeIndirect);
    }

    if (extensions.count("GL_ARB_copy_buffer") != 0)
    {
        ASSIGN("glCopyBufferSubData", copyBufferSubData);
    }

    if (extensions.count("GL_ARB_copy_image") != 0)
    {
        ASSIGN("glCopyImageSubData", copyImageSubData);
    }

    if (extensions.count("GL_ARB_debug_output") != 0)
    {
        ASSIGN("glDebugMessageCallbackARB", debugMessageCallback);
        ASSIGN("glDebugMessageControlARB", debugMessageControl);
        ASSIGN("glDebugMessageInsertARB", debugMessageInsert);
        ASSIGN("glGetDebugMessageLogARB", getDebugMessageLog);
    }

    if (extensions.count("GL_ARB_direct_state_access") != 0)
    {
        ASSIGN("glBindTextureUnit", bindTextureUnit);
        ASSIGN("glBlitNamedFramebuffer", blitNamedFramebuffer);
        ASSIGN("glCheckNamedFramebufferStatus", checkNamedFramebufferStatus);
        ASSIGN("glClearNamedBufferData", clearNamedBufferData);
        ASSIGN("glClearNamedBufferSubData", clearNamedBufferSubData);
        ASSIGN("glClearNamedFramebufferfi", clearNamedFramebufferfi);
        ASSIGN("glClearNamedFramebufferfv", clearNamedFramebufferfv);
        ASSIGN("glClearNamedFramebufferiv", clearNamedFramebufferiv);
        ASSIGN("glClearNamedFramebufferuiv", clearNamedFramebufferuiv);
        ASSIGN("glCompressedTextureSubImage1D", compressedTextureSubImage1D);
        ASSIGN("glCompressedTextureSubImage2D", compressedTextureSubImage2D);
        ASSIGN("glCompressedTextureSubImage3D", compressedTextureSubImage3D);
        ASSIGN("glCopyNamedBufferSubData", copyNamedBufferSubData);
        ASSIGN("glCopyTextureSubImage1D", copyTextureSubImage1D);
        ASSIGN("glCopyTextureSubImage2D", copyTextureSubImage2D);
        ASSIGN("glCopyTextureSubImage3D", copyTextureSubImage3D);
        ASSIGN("glCreateBuffers", createBuffers);
        ASSIGN("glCreateFramebuffers", createFramebuffers);
        ASSIGN("glCreateProgramPipelines", createProgramPipelines);
        ASSIGN("glCreateQueries", createQueries);
        ASSIGN("glCreateRenderbuffers", createRenderbuffers);
        ASSIGN("glCreateSamplers", createSamplers);
        ASSIGN("glCreateTextures", createTextures);
        ASSIGN("glCreateTransformFeedbacks", createTransformFeedbacks);
        ASSIGN("glCreateVertexArrays", createVertexArrays);
        ASSIGN("glDisableVertexArrayAttrib", disableVertexArrayAttrib);
        ASSIGN("glEnableVertexArrayAttrib", enableVertexArrayAttrib);
        ASSIGN("glFlushMappedNamedBufferRange", flushMappedNamedBufferRange);
        ASSIGN("glGenerateTextureMipmap", generateTextureMipmap);
        ASSIGN("glGetCompressedTextureImage", getCompressedTextureImage);
        ASSIGN("glGetNamedBufferParameteri64v", getNamedBufferParameteri64v);
        ASSIGN("glGetNamedBufferParameteriv", getNamedBufferParameteriv);
        ASSIGN("glGetNamedBufferPointerv", getNamedBufferPointerv);
        ASSIGN("glGetNamedBufferSubData", getNamedBufferSubData);
        ASSIGN("glGetNamedFramebufferAttachmentParameteriv",
               getNamedFramebufferAttachmentParameteriv);
        ASSIGN("glGetNamedFramebufferParameteriv", getNamedFramebufferParameteriv);
        ASSIGN("glGetNamedRenderbufferParameteriv", getNamedRenderbufferParameteriv);
        ASSIGN("glGetQueryBufferObjecti64v", getQueryBufferObjecti64v);
        ASSIGN("glGetQueryBufferObjectiv", getQueryBufferObjectiv);
        ASSIGN("glGetQueryBufferObjectui64v", getQueryBufferObjectui64v);
        ASSIGN("glGetQueryBufferObjectuiv", getQueryBufferObjectuiv);
        ASSIGN("glGetTextureImage", getTextureImage);
        ASSIGN("glGetTextureLevelParameterfv", getTextureLevelParameterfv);
        ASSIGN("glGetTextureLevelParameteriv", getTextureLevelParameteriv);
        ASSIGN("glGetTextureParameterIiv", getTextureParameterIiv);
        ASSIGN("glGetTextureParameterIuiv", getTextureParameterIuiv);
        ASSIGN("glGetTextureParameterfv", getTextureParameterfv);
        ASSIGN("glGetTextureParameteriv", getTextureParameteriv);
        ASSIGN("glGetTransformFeedbacki64_v", getTransformFeedbacki64_v);
        ASSIGN("glGetTransformFeedbacki_v", getTransformFeedbacki_v);
        ASSIGN("glGetTransformFeedbackiv", getTransformFeedbackiv);
        ASSIGN("glGetVertexArrayIndexed64iv", getVertexArrayIndexed64iv);
        ASSIGN("glGetVertexArrayIndexediv", getVertexArrayIndexediv);
        ASSIGN("glGetVertexArrayiv", getVertexArrayiv);
        ASSIGN("glInvalidateNamedFramebufferData", invalidateNamedFramebufferData);
        ASSIGN("glInvalidateNamedFramebufferSubData", invalidateNamedFramebufferSubData);
        ASSIGN("glMapNamedBuffer", mapNamedBuffer);
        ASSIGN("glMapNamedBufferRange", mapNamedBufferRange);
        ASSIGN("glNamedBufferData", namedBufferData);
        ASSIGN("glNamedBufferStorage", namedBufferStorage);
        ASSIGN("glNamedBufferSubData", namedBufferSubData);
        ASSIGN("glNamedFramebufferDrawBuffer", namedFramebufferDrawBuffer);
        ASSIGN("glNamedFramebufferDrawBuffers", namedFramebufferDrawBuffers);
        ASSIGN("glNamedFramebufferParameteri", namedFramebufferParameteri);
        ASSIGN("glNamedFramebufferReadBuffer", namedFramebufferReadBuffer);
        ASSIGN("glNamedFramebufferRenderbuffer", namedFramebufferRenderbuffer);
        ASSIGN("glNamedFramebufferTexture", namedFramebufferTexture);
        ASSIGN("glNamedFramebufferTextureLayer", namedFramebufferTextureLayer);
        ASSIGN("glNamedRenderbufferStorage", namedRenderbufferStorage);
        ASSIGN("glNamedRenderbufferStorageMultisample", namedRenderbufferStorageMultisample);
        ASSIGN("glTextureBuffer", textureBuffer);
        ASSIGN("glTextureBufferRange", textureBufferRange);
        ASSIGN("glTextureParameterIiv", textureParameterIiv);
        ASSIGN("glTextureParameterIuiv", textureParameterIuiv);
        ASSIGN("glTextureParameterf", textureParameterf);
        ASSIGN("glTextureParameterfv", textureParameterfv);
        ASSIGN("glTextureParameteri", textureParameteri);
        ASSIGN("glTextureParameteriv", textureParameteriv);
        ASSIGN("glTextureStorage1D", textureStorage1D);
        ASSIGN("glTextureStorage2D", textureStorage2D);
        ASSIGN("glTextureStorage2DMultisample", textureStorage2DMultisample);
        ASSIGN("glTextureStorage3D", textureStorage3D);
        ASSIGN("glTextureStorage3DMultisample", textureStorage3DMultisample);
        ASSIGN("glTextureSubImage1D", textureSubImage1D);
        ASSIGN("glTextureSubImage2D", textureSubImage2D);
        ASSIGN("glTextureSubImage3D", textureSubImage3D);
        ASSIGN("glTransformFeedbackBufferBase", transformFeedbackBufferBase);
        ASSIGN("glTransformFeedbackBufferRange", transformFeedbackBufferRange);
        ASSIGN("glUnmapNamedBuffer", unmapNamedBuffer);
        ASSIGN("glVertexArrayAttribBinding", vertexArrayAttribBinding);
        ASSIGN("glVertexArrayAttribFormat", vertexArrayAttribFormat);
        ASSIGN("glVertexArrayAttribIFormat", vertexArrayAttribIFormat);
        ASSIGN("glVertexArrayAttribLFormat", vertexArrayAttribLFormat);
        ASSIGN("glVertexArrayBindingDivisor", vertexArrayBindingDivisor);
        ASSIGN("glVertexArrayElementBuffer", vertexArrayElementBuffer);
        ASSIGN("glVertexArrayVertexBuffer", vertexArrayVertexBuffer);
        ASSIGN("glVertexArrayVertexBuffers", vertexArrayVertexBuffers);
    }

    if (extensions.count("GL_ARB_draw_buffers") != 0)
    {
        ASSIGN("glDrawBuffersARB", drawBuffers);
    }

    if (extensions.count("GL_ARB_draw_buffers_blend") != 0)
    {
        ASSIGN("glBlendEquationSeparateiARB", blendEquationSeparatei);
        ASSIGN("glBlendEquationiARB", blendEquationi);
        ASSIGN("glBlendFuncSeparateiARB", blendFuncSeparatei);
        ASSIGN("glBlendFunciARB", blendFunci);
    }

    if (extensions.count("GL_ARB_draw_elements_base_vertex") != 0)
    {
        ASSIGN("glDrawElementsBaseVertex", drawElementsBaseVertex);
        ASSIGN("glDrawElementsInstancedBaseVertex", drawElementsInstancedBaseVertex);
        ASSIGN("glDrawRangeElementsBaseVertex", drawRangeElementsBaseVertex);
        ASSIGN("glMultiDrawElementsBaseVertex", multiDrawElementsBaseVertex);
    }

    if (extensions.count("GL_ARB_draw_indirect") != 0)
    {
        ASSIGN("glDrawArraysIndirect", drawArraysIndirect);
        ASSIGN("glDrawElementsIndirect", drawElementsIndirect);
    }

    if (extensions.count("GL_ARB_draw_instanced") != 0)
    {
        ASSIGN("glDrawArraysInstancedARB", drawArraysInstanced);
        ASSIGN("glDrawElementsInstancedARB", drawElementsInstanced);
    }

    if (extensions.count("GL_ARB_fragment_program") != 0)
    {
        ASSIGN("glGetProgramivARB", getProgramiv);
        ASSIGN("glIsProgramARB", isProgram);
    }

    if (extensions.count("GL_ARB_framebuffer_no_attachments") != 0)
    {
        ASSIGN("glFramebufferParameteri", framebufferParameteri);
        ASSIGN("glGetFramebufferParameteriv", getFramebufferParameteriv);
    }

    if (extensions.count("GL_ARB_framebuffer_object") != 0)
    {
        ASSIGN("glBindFramebuffer", bindFramebuffer);
        ASSIGN("glBindRenderbuffer", bindRenderbuffer);
        ASSIGN("glBlitFramebuffer", blitFramebuffer);
        ASSIGN("glCheckFramebufferStatus", checkFramebufferStatus);
        ASSIGN("glDeleteFramebuffers", deleteFramebuffers);
        ASSIGN("glDeleteRenderbuffers", deleteRenderbuffers);
        ASSIGN("glFramebufferRenderbuffer", framebufferRenderbuffer);
        ASSIGN("glFramebufferTexture1D", framebufferTexture1D);
        ASSIGN("glFramebufferTexture2D", framebufferTexture2D);
        ASSIGN("glFramebufferTexture3D", framebufferTexture3D);
        ASSIGN("glFramebufferTextureLayer", framebufferTextureLayer);
        ASSIGN("glGenFramebuffers", genFramebuffers);
        ASSIGN("glGenRenderbuffers", genRenderbuffers);
        ASSIGN("glGenerateMipmap", generateMipmap);
        ASSIGN("glGetFramebufferAttachmentParameteriv", getFramebufferAttachmentParameteriv);
        ASSIGN("glGetRenderbufferParameteriv", getRenderbufferParameteriv);
        ASSIGN("glIsFramebuffer", isFramebuffer);
        ASSIGN("glIsRenderbuffer", isRenderbuffer);
        ASSIGN("glRenderbufferStorage", renderbufferStorage);
        ASSIGN("glRenderbufferStorageMultisample", renderbufferStorageMultisample);
    }

    if (extensions.count("GL_ARB_geometry_shader4") != 0)
    {
        ASSIGN("glFramebufferTextureARB", framebufferTexture);
        ASSIGN("glFramebufferTextureLayerARB", framebufferTextureLayer);
        ASSIGN("glProgramParameteriARB", programParameteri);
    }

    if (extensions.count("GL_ARB_get_program_binary") != 0)
    {
        ASSIGN("glGetProgramBinary", getProgramBinary);
        ASSIGN("glProgramBinary", programBinary);
        ASSIGN("glProgramParameteri", programParameteri);
    }

    if (extensions.count("GL_ARB_get_texture_sub_image") != 0)
    {
        ASSIGN("glGetCompressedTextureSubImage", getCompressedTextureSubImage);
        ASSIGN("glGetTextureSubImage", getTextureSubImage);
    }

    if (extensions.count("GL_ARB_gpu_shader_fp64") != 0)
    {
        ASSIGN("glGetUniformdv", getUniformdv);
        ASSIGN("glUniform1d", uniform1d);
        ASSIGN("glUniform1dv", uniform1dv);
        ASSIGN("glUniform2d", uniform2d);
        ASSIGN("glUniform2dv", uniform2dv);
        ASSIGN("glUniform3d", uniform3d);
        ASSIGN("glUniform3dv", uniform3dv);
        ASSIGN("glUniform4d", uniform4d);
        ASSIGN("glUniform4dv", uniform4dv);
        ASSIGN("glUniformMatrix2dv", uniformMatrix2dv);
        ASSIGN("glUniformMatrix2x3dv", uniformMatrix2x3dv);
        ASSIGN("glUniformMatrix2x4dv", uniformMatrix2x4dv);
        ASSIGN("glUniformMatrix3dv", uniformMatrix3dv);
        ASSIGN("glUniformMatrix3x2dv", uniformMatrix3x2dv);
        ASSIGN("glUniformMatrix3x4dv", uniformMatrix3x4dv);
        ASSIGN("glUniformMatrix4dv", uniformMatrix4dv);
        ASSIGN("glUniformMatrix4x2dv", uniformMatrix4x2dv);
        ASSIGN("glUniformMatrix4x3dv", uniformMatrix4x3dv);
    }

    if (extensions.count("GL_ARB_imaging") != 0)
    {
        ASSIGN("glBlendColor", blendColor);
        ASSIGN("glBlendEquation", blendEquation);
    }

    if (extensions.count("GL_ARB_instanced_arrays") != 0)
    {
        ASSIGN("glVertexAttribDivisorARB", vertexAttribDivisor);
    }

    if (extensions.count("GL_ARB_internalformat_query") != 0)
    {
        ASSIGN("glGetInternalformativ", getInternalformativ);
    }

    if (extensions.count("GL_ARB_internalformat_query2") != 0)
    {
        ASSIGN("glGetInternalformati64v", getInternalformati64v);
    }

    if (extensions.count("GL_ARB_invalidate_subdata") != 0)
    {
        ASSIGN("glInvalidateBufferData", invalidateBufferData);
        ASSIGN("glInvalidateBufferSubData", invalidateBufferSubData);
        ASSIGN("glInvalidateFramebuffer", invalidateFramebuffer);
        ASSIGN("glInvalidateSubFramebuffer", invalidateSubFramebuffer);
        ASSIGN("glInvalidateTexImage", invalidateTexImage);
        ASSIGN("glInvalidateTexSubImage", invalidateTexSubImage);
    }

    if (extensions.count("GL_ARB_map_buffer_range") != 0)
    {
        ASSIGN("glFlushMappedBufferRange", flushMappedBufferRange);
        ASSIGN("glMapBufferRange", mapBufferRange);
    }

    if (extensions.count("GL_ARB_multi_bind") != 0)
    {
        ASSIGN("glBindBuffersBase", bindBuffersBase);
        ASSIGN("glBindBuffersRange", bindBuffersRange);
        ASSIGN("glBindImageTextures", bindImageTextures);
        ASSIGN("glBindSamplers", bindSamplers);
        ASSIGN("glBindTextures", bindTextures);
        ASSIGN("glBindVertexBuffers", bindVertexBuffers);
    }

    if (extensions.count("GL_ARB_multi_draw_indirect") != 0)
    {
        ASSIGN("glMultiDrawArraysIndirect", multiDrawArraysIndirect);
        ASSIGN("glMultiDrawElementsIndirect", multiDrawElementsIndirect);
    }

    if (extensions.count("GL_ARB_multisample") != 0)
    {
        ASSIGN("glSampleCoverageARB", sampleCoverage);
    }

    if (extensions.count("GL_ARB_multitexture") != 0)
    {
        ASSIGN("glActiveTextureARB", activeTexture);
    }

    if (extensions.count("GL_ARB_occlusion_query") != 0)
    {
        ASSIGN("glBeginQueryARB", beginQuery);
        ASSIGN("glDeleteQueriesARB", deleteQueries);
        ASSIGN("glEndQueryARB", endQuery);
        ASSIGN("glGenQueriesARB", genQueries);
        ASSIGN("glGetQueryObjectivARB", getQueryObjectiv);
        ASSIGN("glGetQueryObjectuivARB", getQueryObjectuiv);
        ASSIGN("glGetQueryivARB", getQueryiv);
        ASSIGN("glIsQueryARB", isQuery);
    }

    if (extensions.count("GL_ARB_parallel_shader_compile") != 0)
    {
        ASSIGN("glMaxShaderCompilerThreadsARB", maxShaderCompilerThreadsARB);
    }

    if (extensions.count("GL_ARB_point_parameters") != 0)
    {
        ASSIGN("glPointParameterfARB", pointParameterf);
        ASSIGN("glPointParameterfvARB", pointParameterfv);
    }

    if (extensions.count("GL_ARB_program_interface_query") != 0)
    {
        ASSIGN("glGetProgramInterfaceiv", getProgramInterfaceiv);
        ASSIGN("glGetProgramResourceIndex", getProgramResourceIndex);
        ASSIGN("glGetProgramResourceLocation", getProgramResourceLocation);
        ASSIGN("glGetProgramResourceLocationIndex", getProgramResourceLocationIndex);
        ASSIGN("glGetProgramResourceName", getProgramResourceName);
        ASSIGN("glGetProgramResourceiv", getProgramResourceiv);
    }

    if (extensions.count("GL_ARB_provoking_vertex") != 0)
    {
        ASSIGN("glProvokingVertex", provokingVertex);
    }

    if (extensions.count("GL_ARB_robustness") != 0)
    {
        ASSIGN("glGetGraphicsResetStatusARB", getGraphicsResetStatus);
        ASSIGN("glGetnCompressedTexImageARB", getnCompressedTexImage);
        ASSIGN("glGetnTexImageARB", getnTexImage);
        ASSIGN("glGetnUniformdvARB", getnUniformdv);
        ASSIGN("glGetnUniformfvARB", getnUniformfv);
        ASSIGN("glGetnUniformivARB", getnUniformiv);
        ASSIGN("glGetnUniformuivARB", getnUniformuiv);
        ASSIGN("glReadnPixelsARB", readnPixels);
    }

    if (extensions.count("GL_ARB_sample_shading") != 0)
    {
        ASSIGN("glMinSampleShadingARB", minSampleShading);
    }

    if (extensions.count("GL_ARB_sampler_objects") != 0)
    {
        ASSIGN("glBindSampler", bindSampler);
        ASSIGN("glDeleteSamplers", deleteSamplers);
        ASSIGN("glGenSamplers", genSamplers);
        ASSIGN("glGetSamplerParameterIiv", getSamplerParameterIiv);
        ASSIGN("glGetSamplerParameterIuiv", getSamplerParameterIuiv);
        ASSIGN("glGetSamplerParameterfv", getSamplerParameterfv);
        ASSIGN("glGetSamplerParameteriv", getSamplerParameteriv);
        ASSIGN("glIsSampler", isSampler);
        ASSIGN("glSamplerParameterIiv", samplerParameterIiv);
        ASSIGN("glSamplerParameterIuiv", samplerParameterIuiv);
        ASSIGN("glSamplerParameterf", samplerParameterf);
        ASSIGN("glSamplerParameterfv", samplerParameterfv);
        ASSIGN("glSamplerParameteri", samplerParameteri);
        ASSIGN("glSamplerParameteriv", samplerParameteriv);
    }

    if (extensions.count("GL_ARB_separate_shader_objects") != 0)
    {
        ASSIGN("glActiveShaderProgram", activeShaderProgram);
        ASSIGN("glBindProgramPipeline", bindProgramPipeline);
        ASSIGN("glCreateShaderProgramv", createShaderProgramv);
        ASSIGN("glDeleteProgramPipelines", deleteProgramPipelines);
        ASSIGN("glGenProgramPipelines", genProgramPipelines);
        ASSIGN("glGetProgramPipelineInfoLog", getProgramPipelineInfoLog);
        ASSIGN("glGetProgramPipelineiv", getProgramPipelineiv);
        ASSIGN("glIsProgramPipeline", isProgramPipeline);
        ASSIGN("glProgramParameteri", programParameteri);
        ASSIGN("glProgramUniform1d", programUniform1d);
        ASSIGN("glProgramUniform1dv", programUniform1dv);
        ASSIGN("glProgramUniform1f", programUniform1f);
        ASSIGN("glProgramUniform1fv", programUniform1fv);
        ASSIGN("glProgramUniform1i", programUniform1i);
        ASSIGN("glProgramUniform1iv", programUniform1iv);
        ASSIGN("glProgramUniform1ui", programUniform1ui);
        ASSIGN("glProgramUniform1uiv", programUniform1uiv);
        ASSIGN("glProgramUniform2d", programUniform2d);
        ASSIGN("glProgramUniform2dv", programUniform2dv);
        ASSIGN("glProgramUniform2f", programUniform2f);
        ASSIGN("glProgramUniform2fv", programUniform2fv);
        ASSIGN("glProgramUniform2i", programUniform2i);
        ASSIGN("glProgramUniform2iv", programUniform2iv);
        ASSIGN("glProgramUniform2ui", programUniform2ui);
        ASSIGN("glProgramUniform2uiv", programUniform2uiv);
        ASSIGN("glProgramUniform3d", programUniform3d);
        ASSIGN("glProgramUniform3dv", programUniform3dv);
        ASSIGN("glProgramUniform3f", programUniform3f);
        ASSIGN("glProgramUniform3fv", programUniform3fv);
        ASSIGN("glProgramUniform3i", programUniform3i);
        ASSIGN("glProgramUniform3iv", programUniform3iv);
        ASSIGN("glProgramUniform3ui", programUniform3ui);
        ASSIGN("glProgramUniform3uiv", programUniform3uiv);
        ASSIGN("glProgramUniform4d", programUniform4d);
        ASSIGN("glProgramUniform4dv", programUniform4dv);
        ASSIGN("glProgramUniform4f", programUniform4f);
        ASSIGN("glProgramUniform4fv", programUniform4fv);
        ASSIGN("glProgramUniform4i", programUniform4i);
        ASSIGN("glProgramUniform4iv", programUniform4iv);
        ASSIGN("glProgramUniform4ui", programUniform4ui);
        ASSIGN("glProgramUniform4uiv", programUniform4uiv);
        ASSIGN("glProgramUniformMatrix2dv", programUniformMatrix2dv);
        ASSIGN("glProgramUniformMatrix2fv", programUniformMatrix2fv);
        ASSIGN("glProgramUniformMatrix2x3dv", programUniformMatrix2x3dv);
        ASSIGN("glProgramUniformMatrix2x3fv", programUniformMatrix2x3fv);
        ASSIGN("glProgramUniformMatrix2x4dv", programUniformMatrix2x4dv);
        ASSIGN("glProgramUniformMatrix2x4fv", programUniformMatrix2x4fv);
        ASSIGN("glProgramUniformMatrix3dv", programUniformMatrix3dv);
        ASSIGN("glProgramUniformMatrix3fv", programUniformMatrix3fv);
        ASSIGN("glProgramUniformMatrix3x2dv", programUniformMatrix3x2dv);
        ASSIGN("glProgramUniformMatrix3x2fv", programUniformMatrix3x2fv);
        ASSIGN("glProgramUniformMatrix3x4dv", programUniformMatrix3x4dv);
        ASSIGN("glProgramUniformMatrix3x4fv", programUniformMatrix3x4fv);
        ASSIGN("glProgramUniformMatrix4dv", programUniformMatrix4dv);
        ASSIGN("glProgramUniformMatrix4fv", programUniformMatrix4fv);
        ASSIGN("glProgramUniformMatrix4x2dv", programUniformMatrix4x2dv);
        ASSIGN("glProgramUniformMatrix4x2fv", programUniformMatrix4x2fv);
        ASSIGN("glProgramUniformMatrix4x3dv", programUniformMatrix4x3dv);
        ASSIGN("glProgramUniformMatrix4x3fv", programUniformMatrix4x3fv);
        ASSIGN("glUseProgramStages", useProgramStages);
        ASSIGN("glValidateProgramPipeline", validateProgramPipeline);
    }

    if (extensions.count("GL_ARB_shader_atomic_counters") != 0)
    {
        ASSIGN("glGetActiveAtomicCounterBufferiv", getActiveAtomicCounterBufferiv);
    }

    if (extensions.count("GL_ARB_shader_image_load_store") != 0)
    {
        ASSIGN("glBindImageTexture", bindImageTexture);
        ASSIGN("glMemoryBarrier", memoryBarrier);
    }

    if (extensions.count("GL_ARB_shader_objects") != 0)
    {
        ASSIGN("glCompileShaderARB", compileShader);
        ASSIGN("glGetActiveUniformARB", getActiveUniform);
        ASSIGN("glGetShaderSourceARB", getShaderSource);
        ASSIGN("glGetUniformLocationARB", getUniformLocation);
        ASSIGN("glGetUniformfvARB", getUniformfv);
        ASSIGN("glGetUniformivARB", getUniformiv);
        ASSIGN("glLinkProgramARB", linkProgram);
        ASSIGN("glShaderSourceARB", shaderSource);
        ASSIGN("glUniform1fARB", uniform1f);
        ASSIGN("glUniform1fvARB", uniform1fv);
        ASSIGN("glUniform1iARB", uniform1i);
        ASSIGN("glUniform1ivARB", uniform1iv);
        ASSIGN("glUniform2fARB", uniform2f);
        ASSIGN("glUniform2fvARB", uniform2fv);
        ASSIGN("glUniform2iARB", uniform2i);
        ASSIGN("glUniform2ivARB", uniform2iv);
        ASSIGN("glUniform3fARB", uniform3f);
        ASSIGN("glUniform3fvARB", uniform3fv);
        ASSIGN("glUniform3iARB", uniform3i);
        ASSIGN("glUniform3ivARB", uniform3iv);
        ASSIGN("glUniform4fARB", uniform4f);
        ASSIGN("glUniform4fvARB", uniform4fv);
        ASSIGN("glUniform4iARB", uniform4i);
        ASSIGN("glUniform4ivARB", uniform4iv);
        ASSIGN("glUniformMatrix2fvARB", uniformMatrix2fv);
        ASSIGN("glUniformMatrix3fvARB", uniformMatrix3fv);
        ASSIGN("glUniformMatrix4fvARB", uniformMatrix4fv);
        ASSIGN("glValidateProgramARB", validateProgram);
    }

    if (extensions.count("GL_ARB_shader_storage_buffer_object") != 0)
    {
        ASSIGN("glShaderStorageBlockBinding", shaderStorageBlockBinding);
    }

    if (extensions.count("GL_ARB_shader_subroutine") != 0)
    {
        ASSIGN("glGetActiveSubroutineName", getActiveSubroutineName);
        ASSIGN("glGetActiveSubroutineUniformName", getActiveSubroutineUniformName);
        ASSIGN("glGetActiveSubroutineUniformiv", getActiveSubroutineUniformiv);
        ASSIGN("glGetProgramStageiv", getProgramStageiv);
        ASSIGN("glGetSubroutineIndex", getSubroutineIndex);
        ASSIGN("glGetSubroutineUniformLocation", getSubroutineUniformLocation);
        ASSIGN("glGetUniformSubroutineuiv", getUniformSubroutineuiv);
        ASSIGN("glUniformSubroutinesuiv", uniformSubroutinesuiv);
    }

    if (extensions.count("GL_ARB_sync") != 0)
    {
        ASSIGN("glClientWaitSync", clientWaitSync);
        ASSIGN("glDeleteSync", deleteSync);
        ASSIGN("glFenceSync", fenceSync);
        ASSIGN("glGetInteger64v", getInteger64v);
        ASSIGN("glGetSynciv", getSynciv);
        ASSIGN("glIsSync", isSync);
        ASSIGN("glWaitSync", waitSync);
    }

    if (extensions.count("GL_ARB_tessellation_shader") != 0)
    {
        ASSIGN("glPatchParameterfv", patchParameterfv);
        ASSIGN("glPatchParameteri", patchParameteri);
    }

    if (extensions.count("GL_ARB_texture_barrier") != 0)
    {
        ASSIGN("glTextureBarrier", textureBarrier);
    }

    if (extensions.count("GL_ARB_texture_buffer_object") != 0)
    {
        ASSIGN("glTexBufferARB", texBuffer);
    }

    if (extensions.count("GL_ARB_texture_buffer_range") != 0)
    {
        ASSIGN("glTexBufferRange", texBufferRange);
    }

    if (extensions.count("GL_ARB_texture_compression") != 0)
    {
        ASSIGN("glCompressedTexImage1DARB", compressedTexImage1D);
        ASSIGN("glCompressedTexImage2DARB", compressedTexImage2D);
        ASSIGN("glCompressedTexImage3DARB", compressedTexImage3D);
        ASSIGN("glCompressedTexSubImage1DARB", compressedTexSubImage1D);
        ASSIGN("glCompressedTexSubImage2DARB", compressedTexSubImage2D);
        ASSIGN("glCompressedTexSubImage3DARB", compressedTexSubImage3D);
        ASSIGN("glGetCompressedTexImageARB", getCompressedTexImage);
    }

    if (extensions.count("GL_ARB_texture_multisample") != 0)
    {
        ASSIGN("glGetMultisamplefv", getMultisamplefv);
        ASSIGN("glSampleMaski", sampleMaski);
        ASSIGN("glTexImage2DMultisample", texImage2DMultisample);
        ASSIGN("glTexImage3DMultisample", texImage3DMultisample);
    }

    if (extensions.count("GL_ARB_texture_storage") != 0)
    {
        ASSIGN("glTexStorage1D", texStorage1D);
        ASSIGN("glTexStorage2D", texStorage2D);
        ASSIGN("glTexStorage3D", texStorage3D);
    }

    if (extensions.count("GL_ARB_texture_storage_multisample") != 0)
    {
        ASSIGN("glTexStorage2DMultisample", texStorage2DMultisample);
        ASSIGN("glTexStorage3DMultisample", texStorage3DMultisample);
    }

    if (extensions.count("GL_ARB_texture_view") != 0)
    {
        ASSIGN("glTextureView", textureView);
    }

    if (extensions.count("GL_ARB_timer_query") != 0)
    {
        ASSIGN("glGetQueryObjecti64v", getQueryObjecti64v);
        ASSIGN("glGetQueryObjectui64v", getQueryObjectui64v);
        ASSIGN("glQueryCounter", queryCounter);
    }

    if (extensions.count("GL_ARB_transform_feedback2") != 0)
    {
        ASSIGN("glBindTransformFeedback", bindTransformFeedback);
        ASSIGN("glDeleteTransformFeedbacks", deleteTransformFeedbacks);
        ASSIGN("glDrawTransformFeedback", drawTransformFeedback);
        ASSIGN("glGenTransformFeedbacks", genTransformFeedbacks);
        ASSIGN("glIsTransformFeedback", isTransformFeedback);
        ASSIGN("glPauseTransformFeedback", pauseTransformFeedback);
        ASSIGN("glResumeTransformFeedback", resumeTransformFeedback);
    }

    if (extensions.count("GL_ARB_transform_feedback3") != 0)
    {
        ASSIGN("glBeginQueryIndexed", beginQueryIndexed);
        ASSIGN("glDrawTransformFeedbackStream", drawTransformFeedbackStream);
        ASSIGN("glEndQueryIndexed", endQueryIndexed);
        ASSIGN("glGetQueryIndexediv", getQueryIndexediv);
    }

    if (extensions.count("GL_ARB_transform_feedback_instanced") != 0)
    {
        ASSIGN("glDrawTransformFeedbackInstanced", drawTransformFeedbackInstanced);
        ASSIGN("glDrawTransformFeedbackStreamInstanced", drawTransformFeedbackStreamInstanced);
    }

    if (extensions.count("GL_ARB_uniform_buffer_object") != 0)
    {
        ASSIGN("glBindBufferBase", bindBufferBase);
        ASSIGN("glBindBufferRange", bindBufferRange);
        ASSIGN("glGetActiveUniformBlockName", getActiveUniformBlockName);
        ASSIGN("glGetActiveUniformBlockiv", getActiveUniformBlockiv);
        ASSIGN("glGetActiveUniformName", getActiveUniformName);
        ASSIGN("glGetActiveUniformsiv", getActiveUniformsiv);
        ASSIGN("glGetIntegeri_v", getIntegeri_v);
        ASSIGN("glGetUniformBlockIndex", getUniformBlockIndex);
        ASSIGN("glGetUniformIndices", getUniformIndices);
        ASSIGN("glUniformBlockBinding", uniformBlockBinding);
    }

    if (extensions.count("GL_ARB_vertex_array_object") != 0)
    {
        ASSIGN("glBindVertexArray", bindVertexArray);
        ASSIGN("glDeleteVertexArrays", deleteVertexArrays);
        ASSIGN("glGenVertexArrays", genVertexArrays);
        ASSIGN("glIsVertexArray", isVertexArray);
    }

    if (extensions.count("GL_ARB_vertex_attrib_64bit") != 0)
    {
        ASSIGN("glGetVertexAttribLdv", getVertexAttribLdv);
        ASSIGN("glVertexAttribL1d", vertexAttribL1d);
        ASSIGN("glVertexAttribL1dv", vertexAttribL1dv);
        ASSIGN("glVertexAttribL2d", vertexAttribL2d);
        ASSIGN("glVertexAttribL2dv", vertexAttribL2dv);
        ASSIGN("glVertexAttribL3d", vertexAttribL3d);
        ASSIGN("glVertexAttribL3dv", vertexAttribL3dv);
        ASSIGN("glVertexAttribL4d", vertexAttribL4d);
        ASSIGN("glVertexAttribL4dv", vertexAttribL4dv);
        ASSIGN("glVertexAttribLPointer", vertexAttribLPointer);
    }

    if (extensions.count("GL_ARB_vertex_attrib_binding") != 0)
    {
        ASSIGN("glBindVertexBuffer", bindVertexBuffer);
        ASSIGN("glVertexAttribBinding", vertexAttribBinding);
        ASSIGN("glVertexAttribFormat", vertexAttribFormat);
        ASSIGN("glVertexAttribIFormat", vertexAttribIFormat);
        ASSIGN("glVertexAttribLFormat", vertexAttribLFormat);
        ASSIGN("glVertexBindingDivisor", vertexBindingDivisor);
    }

    if (extensions.count("GL_ARB_vertex_buffer_object") != 0)
    {
        ASSIGN("glBindBufferARB", bindBuffer);
        ASSIGN("glBufferDataARB", bufferData);
        ASSIGN("glBufferSubDataARB", bufferSubData);
        ASSIGN("glDeleteBuffersARB", deleteBuffers);
        ASSIGN("glGenBuffersARB", genBuffers);
        ASSIGN("glGetBufferParameterivARB", getBufferParameteriv);
        ASSIGN("glGetBufferPointervARB", getBufferPointerv);
        ASSIGN("glGetBufferSubDataARB", getBufferSubData);
        ASSIGN("glIsBufferARB", isBuffer);
        ASSIGN("glMapBufferARB", mapBuffer);
        ASSIGN("glUnmapBufferARB", unmapBuffer);
    }

    if (extensions.count("GL_ARB_vertex_program") != 0)
    {
        ASSIGN("glDisableVertexAttribArrayARB", disableVertexAttribArray);
        ASSIGN("glEnableVertexAttribArrayARB", enableVertexAttribArray);
        ASSIGN("glGetProgramivARB", getProgramiv);
        ASSIGN("glGetVertexAttribPointervARB", getVertexAttribPointerv);
        ASSIGN("glGetVertexAttribdvARB", getVertexAttribdv);
        ASSIGN("glGetVertexAttribfvARB", getVertexAttribfv);
        ASSIGN("glGetVertexAttribivARB", getVertexAttribiv);
        ASSIGN("glIsProgramARB", isProgram);
        ASSIGN("glVertexAttrib1dARB", vertexAttrib1d);
        ASSIGN("glVertexAttrib1dvARB", vertexAttrib1dv);
        ASSIGN("glVertexAttrib1fARB", vertexAttrib1f);
        ASSIGN("glVertexAttrib1fvARB", vertexAttrib1fv);
        ASSIGN("glVertexAttrib1sARB", vertexAttrib1s);
        ASSIGN("glVertexAttrib1svARB", vertexAttrib1sv);
        ASSIGN("glVertexAttrib2dARB", vertexAttrib2d);
        ASSIGN("glVertexAttrib2dvARB", vertexAttrib2dv);
        ASSIGN("glVertexAttrib2fARB", vertexAttrib2f);
        ASSIGN("glVertexAttrib2fvARB", vertexAttrib2fv);
        ASSIGN("glVertexAttrib2sARB", vertexAttrib2s);
        ASSIGN("glVertexAttrib2svARB", vertexAttrib2sv);
        ASSIGN("glVertexAttrib3dARB", vertexAttrib3d);
        ASSIGN("glVertexAttrib3dvARB", vertexAttrib3dv);
        ASSIGN("glVertexAttrib3fARB", vertexAttrib3f);
        ASSIGN("glVertexAttrib3fvARB", vertexAttrib3fv);
        ASSIGN("glVertexAttrib3sARB", vertexAttrib3s);
        ASSIGN("glVertexAttrib3svARB", vertexAttrib3sv);
        ASSIGN("glVertexAttrib4NbvARB", vertexAttrib4Nbv);
        ASSIGN("glVertexAttrib4NivARB", vertexAttrib4Niv);
        ASSIGN("glVertexAttrib4NsvARB", vertexAttrib4Nsv);
        ASSIGN("glVertexAttrib4NubARB", vertexAttrib4Nub);
        ASSIGN("glVertexAttrib4NubvARB", vertexAttrib4Nubv);
        ASSIGN("glVertexAttrib4NuivARB", vertexAttrib4Nuiv);
        ASSIGN("glVertexAttrib4NusvARB", vertexAttrib4Nusv);
        ASSIGN("glVertexAttrib4bvARB", vertexAttrib4bv);
        ASSIGN("glVertexAttrib4dARB", vertexAttrib4d);
        ASSIGN("glVertexAttrib4dvARB", vertexAttrib4dv);
        ASSIGN("glVertexAttrib4fARB", vertexAttrib4f);
        ASSIGN("glVertexAttrib4fvARB", vertexAttrib4fv);
        ASSIGN("glVertexAttrib4ivARB", vertexAttrib4iv);
        ASSIGN("glVertexAttrib4sARB", vertexAttrib4s);
        ASSIGN("glVertexAttrib4svARB", vertexAttrib4sv);
        ASSIGN("glVertexAttrib4ubvARB", vertexAttrib4ubv);
        ASSIGN("glVertexAttrib4uivARB", vertexAttrib4uiv);
        ASSIGN("glVertexAttrib4usvARB", vertexAttrib4usv);
        ASSIGN("glVertexAttribPointerARB", vertexAttribPointer);
    }

    if (extensions.count("GL_ARB_vertex_shader") != 0)
    {
        ASSIGN("glBindAttribLocationARB", bindAttribLocation);
        ASSIGN("glDisableVertexAttribArrayARB", disableVertexAttribArray);
        ASSIGN("glEnableVertexAttribArrayARB", enableVertexAttribArray);
        ASSIGN("glGetActiveAttribARB", getActiveAttrib);
        ASSIGN("glGetAttribLocationARB", getAttribLocation);
        ASSIGN("glGetVertexAttribPointervARB", getVertexAttribPointerv);
        ASSIGN("glGetVertexAttribdvARB", getVertexAttribdv);
        ASSIGN("glGetVertexAttribfvARB", getVertexAttribfv);
        ASSIGN("glGetVertexAttribivARB", getVertexAttribiv);
        ASSIGN("glVertexAttrib1dARB", vertexAttrib1d);
        ASSIGN("glVertexAttrib1dvARB", vertexAttrib1dv);
        ASSIGN("glVertexAttrib1fARB", vertexAttrib1f);
        ASSIGN("glVertexAttrib1fvARB", vertexAttrib1fv);
        ASSIGN("glVertexAttrib1sARB", vertexAttrib1s);
        ASSIGN("glVertexAttrib1svARB", vertexAttrib1sv);
        ASSIGN("glVertexAttrib2dARB", vertexAttrib2d);
        ASSIGN("glVertexAttrib2dvARB", vertexAttrib2dv);
        ASSIGN("glVertexAttrib2fARB", vertexAttrib2f);
        ASSIGN("glVertexAttrib2fvARB", vertexAttrib2fv);
        ASSIGN("glVertexAttrib2sARB", vertexAttrib2s);
        ASSIGN("glVertexAttrib2svARB", vertexAttrib2sv);
        ASSIGN("glVertexAttrib3dARB", vertexAttrib3d);
        ASSIGN("glVertexAttrib3dvARB", vertexAttrib3dv);
        ASSIGN("glVertexAttrib3fARB", vertexAttrib3f);
        ASSIGN("glVertexAttrib3fvARB", vertexAttrib3fv);
        ASSIGN("glVertexAttrib3sARB", vertexAttrib3s);
        ASSIGN("glVertexAttrib3svARB", vertexAttrib3sv);
        ASSIGN("glVertexAttrib4NbvARB", vertexAttrib4Nbv);
        ASSIGN("glVertexAttrib4NivARB", vertexAttrib4Niv);
        ASSIGN("glVertexAttrib4NsvARB", vertexAttrib4Nsv);
        ASSIGN("glVertexAttrib4NubARB", vertexAttrib4Nub);
        ASSIGN("glVertexAttrib4NubvARB", vertexAttrib4Nubv);
        ASSIGN("glVertexAttrib4NuivARB", vertexAttrib4Nuiv);
        ASSIGN("glVertexAttrib4NusvARB", vertexAttrib4Nusv);
        ASSIGN("glVertexAttrib4bvARB", vertexAttrib4bv);
        ASSIGN("glVertexAttrib4dARB", vertexAttrib4d);
        ASSIGN("glVertexAttrib4dvARB", vertexAttrib4dv);
        ASSIGN("glVertexAttrib4fARB", vertexAttrib4f);
        ASSIGN("glVertexAttrib4fvARB", vertexAttrib4fv);
        ASSIGN("glVertexAttrib4ivARB", vertexAttrib4iv);
        ASSIGN("glVertexAttrib4sARB", vertexAttrib4s);
        ASSIGN("glVertexAttrib4svARB", vertexAttrib4sv);
        ASSIGN("glVertexAttrib4ubvARB", vertexAttrib4ubv);
        ASSIGN("glVertexAttrib4uivARB", vertexAttrib4uiv);
        ASSIGN("glVertexAttrib4usvARB", vertexAttrib4usv);
        ASSIGN("glVertexAttribPointerARB", vertexAttribPointer);
    }

    if (extensions.count("GL_ARB_vertex_type_2_10_10_10_rev") != 0)
    {
        ASSIGN("glVertexAttribP1ui", vertexAttribP1ui);
        ASSIGN("glVertexAttribP1uiv", vertexAttribP1uiv);
        ASSIGN("glVertexAttribP2ui", vertexAttribP2ui);
        ASSIGN("glVertexAttribP2uiv", vertexAttribP2uiv);
        ASSIGN("glVertexAttribP3ui", vertexAttribP3ui);
        ASSIGN("glVertexAttribP3uiv", vertexAttribP3uiv);
        ASSIGN("glVertexAttribP4ui", vertexAttribP4ui);
        ASSIGN("glVertexAttribP4uiv", vertexAttribP4uiv);
    }

    if (extensions.count("GL_ARB_viewport_array") != 0)
    {
        ASSIGN("glDepthRangeArrayv", depthRangeArrayv);
        ASSIGN("glDepthRangeIndexed", depthRangeIndexed);
        ASSIGN("glGetDoublei_v", getDoublei_v);
        ASSIGN("glGetFloati_v", getFloati_v);
        ASSIGN("glScissorArrayv", scissorArrayv);
        ASSIGN("glScissorIndexed", scissorIndexed);
        ASSIGN("glScissorIndexedv", scissorIndexedv);
        ASSIGN("glViewportArrayv", viewportArrayv);
        ASSIGN("glViewportIndexedf", viewportIndexedf);
        ASSIGN("glViewportIndexedfv", viewportIndexedfv);
    }

    if (extensions.count("GL_EXT_blend_color") != 0)
    {
        ASSIGN("glBlendColorEXT", blendColor);
    }

    if (extensions.count("GL_EXT_blend_equation_separate") != 0)
    {
        ASSIGN("glBlendEquationSeparateEXT", blendEquationSeparate);
    }

    if (extensions.count("GL_EXT_blend_func_separate") != 0)
    {
        ASSIGN("glBlendFuncSeparateEXT", blendFuncSeparate);
    }

    if (extensions.count("GL_EXT_blend_minmax") != 0)
    {
        ASSIGN("glBlendEquationEXT", blendEquation);
    }

    if (extensions.count("GL_EXT_copy_texture") != 0)
    {
        ASSIGN("glCopyTexImage1DEXT", copyTexImage1D);
        ASSIGN("glCopyTexImage2DEXT", copyTexImage2D);
        ASSIGN("glCopyTexSubImage1DEXT", copyTexSubImage1D);
        ASSIGN("glCopyTexSubImage2DEXT", copyTexSubImage2D);
        ASSIGN("glCopyTexSubImage3DEXT", copyTexSubImage3D);
    }

    if (extensions.count("GL_EXT_direct_state_access") != 0)
    {
        ASSIGN("glCheckNamedFramebufferStatusEXT", checkNamedFramebufferStatus);
        ASSIGN("glClearNamedBufferDataEXT", clearNamedBufferData);
        ASSIGN("glClearNamedBufferSubDataEXT", clearNamedBufferSubData);
        ASSIGN("glCompressedTextureSubImage1DEXT", compressedTextureSubImage1D);
        ASSIGN("glCompressedTextureSubImage2DEXT", compressedTextureSubImage2D);
        ASSIGN("glCompressedTextureSubImage3DEXT", compressedTextureSubImage3D);
        ASSIGN("glCopyTextureSubImage1DEXT", copyTextureSubImage1D);
        ASSIGN("glCopyTextureSubImage2DEXT", copyTextureSubImage2D);
        ASSIGN("glCopyTextureSubImage3DEXT", copyTextureSubImage3D);
        ASSIGN("glDisableVertexArrayAttribEXT", disableVertexArrayAttrib);
        ASSIGN("glEnableVertexArrayAttribEXT", enableVertexArrayAttrib);
        ASSIGN("glFlushMappedNamedBufferRangeEXT", flushMappedNamedBufferRange);
        ASSIGN("glGenerateTextureMipmapEXT", generateTextureMipmap);
        ASSIGN("glGetCompressedTextureImageEXT", getCompressedTextureImage);
        ASSIGN("glGetDoublei_vEXT", getDoublei_v);
        ASSIGN("glGetFloati_vEXT", getFloati_v);
        ASSIGN("glGetFramebufferParameterivEXT", getFramebufferParameteriv);
        ASSIGN("glGetNamedBufferParameterivEXT", getNamedBufferParameteriv);
        ASSIGN("glGetNamedBufferPointervEXT", getNamedBufferPointerv);
        ASSIGN("glGetNamedBufferSubDataEXT", getNamedBufferSubData);
        ASSIGN("glGetNamedFramebufferAttachmentParameterivEXT",
               getNamedFramebufferAttachmentParameteriv);
        ASSIGN("glGetNamedFramebufferParameterivEXT", getNamedFramebufferParameteriv);
        ASSIGN("glGetNamedRenderbufferParameterivEXT", getNamedRenderbufferParameteriv);
        ASSIGN("glGetTextureImageEXT", getTextureImage);
        ASSIGN("glGetTextureLevelParameterfvEXT", getTextureLevelParameterfv);
        ASSIGN("glGetTextureLevelParameterivEXT", getTextureLevelParameteriv);
        ASSIGN("glGetTextureParameterIivEXT", getTextureParameterIiv);
        ASSIGN("glGetTextureParameterIuivEXT", getTextureParameterIuiv);
        ASSIGN("glGetTextureParameterfvEXT", getTextureParameterfv);
        ASSIGN("glGetTextureParameterivEXT", getTextureParameteriv);
        ASSIGN("glMapNamedBufferEXT", mapNamedBuffer);
        ASSIGN("glMapNamedBufferRangeEXT", mapNamedBufferRange);
        ASSIGN("glNamedBufferDataEXT", namedBufferData);
        ASSIGN("glNamedBufferStorageEXT", namedBufferStorage);
        ASSIGN("glNamedBufferSubDataEXT", namedBufferSubData);
        ASSIGN("glNamedFramebufferParameteriEXT", namedFramebufferParameteri);
        ASSIGN("glNamedFramebufferRenderbufferEXT", namedFramebufferRenderbuffer);
        ASSIGN("glNamedFramebufferTextureEXT", namedFramebufferTexture);
        ASSIGN("glNamedFramebufferTextureLayerEXT", namedFramebufferTextureLayer);
        ASSIGN("glNamedRenderbufferStorageEXT", namedRenderbufferStorage);
        ASSIGN("glNamedRenderbufferStorageMultisampleEXT", namedRenderbufferStorageMultisample);
        ASSIGN("glProgramUniform1dEXT", programUniform1d);
        ASSIGN("glProgramUniform1dvEXT", programUniform1dv);
        ASSIGN("glProgramUniform1fEXT", programUniform1f);
        ASSIGN("glProgramUniform1fvEXT", programUniform1fv);
        ASSIGN("glProgramUniform1iEXT", programUniform1i);
        ASSIGN("glProgramUniform1ivEXT", programUniform1iv);
        ASSIGN("glProgramUniform1uiEXT", programUniform1ui);
        ASSIGN("glProgramUniform1uivEXT", programUniform1uiv);
        ASSIGN("glProgramUniform2dEXT", programUniform2d);
        ASSIGN("glProgramUniform2dvEXT", programUniform2dv);
        ASSIGN("glProgramUniform2fEXT", programUniform2f);
        ASSIGN("glProgramUniform2fvEXT", programUniform2fv);
        ASSIGN("glProgramUniform2iEXT", programUniform2i);
        ASSIGN("glProgramUniform2ivEXT", programUniform2iv);
        ASSIGN("glProgramUniform2uiEXT", programUniform2ui);
        ASSIGN("glProgramUniform2uivEXT", programUniform2uiv);
        ASSIGN("glProgramUniform3dEXT", programUniform3d);
        ASSIGN("glProgramUniform3dvEXT", programUniform3dv);
        ASSIGN("glProgramUniform3fEXT", programUniform3f);
        ASSIGN("glProgramUniform3fvEXT", programUniform3fv);
        ASSIGN("glProgramUniform3iEXT", programUniform3i);
        ASSIGN("glProgramUniform3ivEXT", programUniform3iv);
        ASSIGN("glProgramUniform3uiEXT", programUniform3ui);
        ASSIGN("glProgramUniform3uivEXT", programUniform3uiv);
        ASSIGN("glProgramUniform4dEXT", programUniform4d);
        ASSIGN("glProgramUniform4dvEXT", programUniform4dv);
        ASSIGN("glProgramUniform4fEXT", programUniform4f);
        ASSIGN("glProgramUniform4fvEXT", programUniform4fv);
        ASSIGN("glProgramUniform4iEXT", programUniform4i);
        ASSIGN("glProgramUniform4ivEXT", programUniform4iv);
        ASSIGN("glProgramUniform4uiEXT", programUniform4ui);
        ASSIGN("glProgramUniform4uivEXT", programUniform4uiv);
        ASSIGN("glProgramUniformMatrix2dvEXT", programUniformMatrix2dv);
        ASSIGN("glProgramUniformMatrix2fvEXT", programUniformMatrix2fv);
        ASSIGN("glProgramUniformMatrix2x3dvEXT", programUniformMatrix2x3dv);
        ASSIGN("glProgramUniformMatrix2x3fvEXT", programUniformMatrix2x3fv);
        ASSIGN("glProgramUniformMatrix2x4dvEXT", programUniformMatrix2x4dv);
        ASSIGN("glProgramUniformMatrix2x4fvEXT", programUniformMatrix2x4fv);
        ASSIGN("glProgramUniformMatrix3dvEXT", programUniformMatrix3dv);
        ASSIGN("glProgramUniformMatrix3fvEXT", programUniformMatrix3fv);
        ASSIGN("glProgramUniformMatrix3x2dvEXT", programUniformMatrix3x2dv);
        ASSIGN("glProgramUniformMatrix3x2fvEXT", programUniformMatrix3x2fv);
        ASSIGN("glProgramUniformMatrix3x4dvEXT", programUniformMatrix3x4dv);
        ASSIGN("glProgramUniformMatrix3x4fvEXT", programUniformMatrix3x4fv);
        ASSIGN("glProgramUniformMatrix4dvEXT", programUniformMatrix4dv);
        ASSIGN("glProgramUniformMatrix4fvEXT", programUniformMatrix4fv);
        ASSIGN("glProgramUniformMatrix4x2dvEXT", programUniformMatrix4x2dv);
        ASSIGN("glProgramUniformMatrix4x2fvEXT", programUniformMatrix4x2fv);
        ASSIGN("glProgramUniformMatrix4x3dvEXT", programUniformMatrix4x3dv);
        ASSIGN("glProgramUniformMatrix4x3fvEXT", programUniformMatrix4x3fv);
        ASSIGN("glTextureBufferEXT", textureBuffer);
        ASSIGN("glTextureBufferRangeEXT", textureBufferRange);
        ASSIGN("glTextureParameterIivEXT", textureParameterIiv);
        ASSIGN("glTextureParameterIuivEXT", textureParameterIuiv);
        ASSIGN("glTextureParameterfEXT", textureParameterf);
        ASSIGN("glTextureParameterfvEXT", textureParameterfv);
        ASSIGN("glTextureParameteriEXT", textureParameteri);
        ASSIGN("glTextureParameterivEXT", textureParameteriv);
        ASSIGN("glTextureStorage2DMultisampleEXT", textureStorage2DMultisample);
        ASSIGN("glTextureStorage3DMultisampleEXT", textureStorage3DMultisample);
        ASSIGN("glTextureSubImage1DEXT", textureSubImage1D);
        ASSIGN("glTextureSubImage2DEXT", textureSubImage2D);
        ASSIGN("glTextureSubImage3DEXT", textureSubImage3D);
        ASSIGN("glUnmapNamedBufferEXT", unmapNamedBuffer);
    }

    if (extensions.count("GL_EXT_draw_range_elements") != 0)
    {
        ASSIGN("glDrawRangeElementsEXT", drawRangeElements);
    }

    if (extensions.count("GL_EXT_framebuffer_blit") != 0)
    {
        ASSIGN("glBlitFramebufferEXT", blitFramebuffer);
        ASSIGN("glBlitFramebufferEXT", blitFramebufferEXT);
    }

    if (extensions.count("GL_EXT_framebuffer_multisample") != 0)
    {
        ASSIGN("glRenderbufferStorageMultisampleEXT", renderbufferStorageMultisample);
        ASSIGN("glRenderbufferStorageMultisampleEXT", renderbufferStorageMultisampleEXT);
    }

    if (extensions.count("GL_EXT_framebuffer_object") != 0)
    {
        ASSIGN("glBindFramebufferEXT", bindFramebuffer);
        ASSIGN("glBindRenderbufferEXT", bindRenderbuffer);
        ASSIGN("glCheckFramebufferStatusEXT", checkFramebufferStatus);
        ASSIGN("glDeleteFramebuffersEXT", deleteFramebuffers);
        ASSIGN("glDeleteRenderbuffersEXT", deleteRenderbuffers);
        ASSIGN("glFramebufferRenderbufferEXT", framebufferRenderbuffer);
        ASSIGN("glFramebufferTexture1DEXT", framebufferTexture1D);
        ASSIGN("glFramebufferTexture2DEXT", framebufferTexture2D);
        ASSIGN("glFramebufferTexture3DEXT", framebufferTexture3D);
        ASSIGN("glGenFramebuffersEXT", genFramebuffers);
        ASSIGN("glGenRenderbuffersEXT", genRenderbuffers);
        ASSIGN("glGenerateMipmapEXT", generateMipmap);
        ASSIGN("glGetFramebufferAttachmentParameterivEXT", getFramebufferAttachmentParameteriv);
        ASSIGN("glGetRenderbufferParameterivEXT", getRenderbufferParameteriv);
        ASSIGN("glIsFramebufferEXT", isFramebuffer);
        ASSIGN("glIsRenderbufferEXT", isRenderbuffer);
        ASSIGN("glRenderbufferStorageEXT", renderbufferStorage);
    }

    if (extensions.count("GL_EXT_geometry_shader4") != 0)
    {
        ASSIGN("glProgramParameteriEXT", programParameteri);
    }

    if (extensions.count("GL_EXT_gpu_shader4") != 0)
    {
        ASSIGN("glBindFragDataLocationEXT", bindFragDataLocation);
        ASSIGN("glGetFragDataLocationEXT", getFragDataLocation);
        ASSIGN("glGetUniformuivEXT", getUniformuiv);
        ASSIGN("glGetVertexAttribIivEXT", getVertexAttribIiv);
        ASSIGN("glGetVertexAttribIuivEXT", getVertexAttribIuiv);
        ASSIGN("glUniform1uiEXT", uniform1ui);
        ASSIGN("glUniform1uivEXT", uniform1uiv);
        ASSIGN("glUniform2uiEXT", uniform2ui);
        ASSIGN("glUniform2uivEXT", uniform2uiv);
        ASSIGN("glUniform3uiEXT", uniform3ui);
        ASSIGN("glUniform3uivEXT", uniform3uiv);
        ASSIGN("glUniform4uiEXT", uniform4ui);
        ASSIGN("glUniform4uivEXT", uniform4uiv);
        ASSIGN("glVertexAttribI1iEXT", vertexAttribI1i);
        ASSIGN("glVertexAttribI1ivEXT", vertexAttribI1iv);
        ASSIGN("glVertexAttribI1uiEXT", vertexAttribI1ui);
        ASSIGN("glVertexAttribI1uivEXT", vertexAttribI1uiv);
        ASSIGN("glVertexAttribI2iEXT", vertexAttribI2i);
        ASSIGN("glVertexAttribI2ivEXT", vertexAttribI2iv);
        ASSIGN("glVertexAttribI2uiEXT", vertexAttribI2ui);
        ASSIGN("glVertexAttribI2uivEXT", vertexAttribI2uiv);
        ASSIGN("glVertexAttribI3iEXT", vertexAttribI3i);
        ASSIGN("glVertexAttribI3ivEXT", vertexAttribI3iv);
        ASSIGN("glVertexAttribI3uiEXT", vertexAttribI3ui);
        ASSIGN("glVertexAttribI3uivEXT", vertexAttribI3uiv);
        ASSIGN("glVertexAttribI4bvEXT", vertexAttribI4bv);
        ASSIGN("glVertexAttribI4iEXT", vertexAttribI4i);
        ASSIGN("glVertexAttribI4ivEXT", vertexAttribI4iv);
        ASSIGN("glVertexAttribI4svEXT", vertexAttribI4sv);
        ASSIGN("glVertexAttribI4ubvEXT", vertexAttribI4ubv);
        ASSIGN("glVertexAttribI4uiEXT", vertexAttribI4ui);
        ASSIGN("glVertexAttribI4uivEXT", vertexAttribI4uiv);
        ASSIGN("glVertexAttribI4usvEXT", vertexAttribI4usv);
        ASSIGN("glVertexAttribIPointerEXT", vertexAttribIPointer);
    }

    if (extensions.count("GL_EXT_point_parameters") != 0)
    {
        ASSIGN("glPointParameterfEXT", pointParameterf);
        ASSIGN("glPointParameterfvEXT", pointParameterfv);
    }

    if (extensions.count("GL_EXT_polygon_offset") != 0)
    {
        ASSIGN("glPolygonOffsetEXT", polygonOffset);
    }

    if (extensions.count("GL_EXT_provoking_vertex") != 0)
    {
        ASSIGN("glProvokingVertexEXT", provokingVertex);
    }

    if (extensions.count("GL_EXT_shader_image_load_store") != 0)
    {
        ASSIGN("glBindImageTextureEXT", bindImageTexture);
        ASSIGN("glMemoryBarrierEXT", memoryBarrier);
    }

    if (extensions.count("GL_EXT_subtexture") != 0)
    {
        ASSIGN("glTexSubImage1DEXT", texSubImage1D);
        ASSIGN("glTexSubImage2DEXT", texSubImage2D);
    }

    if (extensions.count("GL_EXT_texture3D") != 0)
    {
        ASSIGN("glTexImage3DEXT", texImage3D);
        ASSIGN("glTexSubImage3DEXT", texSubImage3D);
    }

    if (extensions.count("GL_EXT_texture_array") != 0)
    {
        ASSIGN("glFramebufferTextureLayerEXT", framebufferTextureLayer);
    }

    if (extensions.count("GL_EXT_texture_buffer_object") != 0)
    {
        ASSIGN("glTexBufferEXT", texBuffer);
        ASSIGN("glTexBufferEXT", texBufferEXT);
    }

    if (extensions.count("GL_EXT_texture_integer") != 0)
    {
        ASSIGN("glGetTexParameterIivEXT", getTexParameterIiv);
        ASSIGN("glGetTexParameterIuivEXT", getTexParameterIuiv);
        ASSIGN("glTexParameterIivEXT", texParameterIiv);
        ASSIGN("glTexParameterIuivEXT", texParameterIuiv);
    }

    if (extensions.count("GL_EXT_texture_object") != 0)
    {
        ASSIGN("glBindTextureEXT", bindTexture);
        ASSIGN("glDeleteTexturesEXT", deleteTextures);
        ASSIGN("glGenTexturesEXT", genTextures);
        ASSIGN("glIsTextureEXT", isTexture);
    }

    if (extensions.count("GL_EXT_timer_query") != 0)
    {
        ASSIGN("glGetQueryObjecti64vEXT", getQueryObjecti64v);
        ASSIGN("glGetQueryObjectui64vEXT", getQueryObjectui64v);
    }

    if (extensions.count("GL_EXT_transform_feedback") != 0)
    {
        ASSIGN("glBeginTransformFeedbackEXT", beginTransformFeedback);
        ASSIGN("glBindBufferBaseEXT", bindBufferBase);
        ASSIGN("glBindBufferRangeEXT", bindBufferRange);
        ASSIGN("glEndTransformFeedbackEXT", endTransformFeedback);
        ASSIGN("glGetTransformFeedbackVaryingEXT", getTransformFeedbackVarying);
        ASSIGN("glTransformFeedbackVaryingsEXT", transformFeedbackVaryings);
    }

    if (extensions.count("GL_EXT_vertex_array") != 0)
    {
        ASSIGN("glDrawArraysEXT", drawArrays);
        ASSIGN("glGetPointervEXT", getPointerv);
    }

    if (extensions.count("GL_EXT_vertex_attrib_64bit") != 0)
    {
        ASSIGN("glGetVertexAttribLdvEXT", getVertexAttribLdv);
        ASSIGN("glVertexAttribL1dEXT", vertexAttribL1d);
        ASSIGN("glVertexAttribL1dvEXT", vertexAttribL1dv);
        ASSIGN("glVertexAttribL2dEXT", vertexAttribL2d);
        ASSIGN("glVertexAttribL2dvEXT", vertexAttribL2dv);
        ASSIGN("glVertexAttribL3dEXT", vertexAttribL3d);
        ASSIGN("glVertexAttribL3dvEXT", vertexAttribL3dv);
        ASSIGN("glVertexAttribL4dEXT", vertexAttribL4d);
        ASSIGN("glVertexAttribL4dvEXT", vertexAttribL4dv);
        ASSIGN("glVertexAttribLPointerEXT", vertexAttribLPointer);
    }

    if (extensions.count("GL_KHR_debug") != 0)
    {
        ASSIGN("glDebugMessageCallback", debugMessageCallback);
        ASSIGN("glDebugMessageControl", debugMessageControl);
        ASSIGN("glDebugMessageInsert", debugMessageInsert);
        ASSIGN("glGetDebugMessageLog", getDebugMessageLog);
        ASSIGN("glGetObjectLabel", getObjectLabel);
        ASSIGN("glGetObjectPtrLabel", getObjectPtrLabel);
        ASSIGN("glGetPointerv", getPointerv);
        ASSIGN("glObjectLabel", objectLabel);
        ASSIGN("glObjectPtrLabel", objectPtrLabel);
        ASSIGN("glPopDebugGroup", popDebugGroup);
        ASSIGN("glPushDebugGroup", pushDebugGroup);
    }

    if (extensions.count("GL_KHR_robustness") != 0)
    {
        ASSIGN("glGetGraphicsResetStatus", getGraphicsResetStatus);
        ASSIGN("glGetnUniformfv", getnUniformfv);
        ASSIGN("glGetnUniformiv", getnUniformiv);
        ASSIGN("glGetnUniformuiv", getnUniformuiv);
        ASSIGN("glReadnPixels", readnPixels);
    }

    if (extensions.count("GL_NV_geometry_program4") != 0)
    {
        ASSIGN("glFramebufferTextureEXT", framebufferTexture);
        ASSIGN("glFramebufferTextureLayerEXT", framebufferTextureLayer);
    }

    if (extensions.count("GL_NV_vertex_program4") != 0)
    {
        ASSIGN("glGetVertexAttribIivEXT", getVertexAttribIiv);
        ASSIGN("glGetVertexAttribIuivEXT", getVertexAttribIuiv);
        ASSIGN("glVertexAttribI1iEXT", vertexAttribI1i);
        ASSIGN("glVertexAttribI1ivEXT", vertexAttribI1iv);
        ASSIGN("glVertexAttribI1uiEXT", vertexAttribI1ui);
        ASSIGN("glVertexAttribI1uivEXT", vertexAttribI1uiv);
        ASSIGN("glVertexAttribI2iEXT", vertexAttribI2i);
        ASSIGN("glVertexAttribI2ivEXT", vertexAttribI2iv);
        ASSIGN("glVertexAttribI2uiEXT", vertexAttribI2ui);
        ASSIGN("glVertexAttribI2uivEXT", vertexAttribI2uiv);
        ASSIGN("glVertexAttribI3iEXT", vertexAttribI3i);
        ASSIGN("glVertexAttribI3ivEXT", vertexAttribI3iv);
        ASSIGN("glVertexAttribI3uiEXT", vertexAttribI3ui);
        ASSIGN("glVertexAttribI3uivEXT", vertexAttribI3uiv);
        ASSIGN("glVertexAttribI4bvEXT", vertexAttribI4bv);
        ASSIGN("glVertexAttribI4iEXT", vertexAttribI4i);
        ASSIGN("glVertexAttribI4ivEXT", vertexAttribI4iv);
        ASSIGN("glVertexAttribI4svEXT", vertexAttribI4sv);
        ASSIGN("glVertexAttribI4ubvEXT", vertexAttribI4ubv);
        ASSIGN("glVertexAttribI4uiEXT", vertexAttribI4ui);
        ASSIGN("glVertexAttribI4uivEXT", vertexAttribI4uiv);
        ASSIGN("glVertexAttribI4usvEXT", vertexAttribI4usv);
        ASSIGN("glVertexAttribIPointerEXT", vertexAttribIPointer);
    }

    if (extensions.count("GL_OES_single_precision") != 0)
    {
        ASSIGN("glClearDepthfOES", clearDepthf);
        ASSIGN("glDepthRangefOES", depthRangef);
    }

    if (version >= gl::Version(1, 0))
    {
        ASSIGN("glBlendFunc", blendFunc);
        ASSIGN("glClear", clear);
        ASSIGN("glClearColor", clearColor);
        ASSIGN("glClearDepth", clearDepth);
        ASSIGN("glClearStencil", clearStencil);
        ASSIGN("glColorMask", colorMask);
        ASSIGN("glCullFace", cullFace);
        ASSIGN("glDepthFunc", depthFunc);
        ASSIGN("glDepthMask", depthMask);
        ASSIGN("glDepthRange", depthRange);
        ASSIGN("glDisable", disable);
        ASSIGN("glDrawBuffer", drawBuffer);
        ASSIGN("glEnable", enable);
        ASSIGN("glFinish", finish);
        ASSIGN("glFlush", flush);
        ASSIGN("glFrontFace", frontFace);
        ASSIGN("glGetBooleanv", getBooleanv);
        ASSIGN("glGetDoublev", getDoublev);
        ASSIGN("glGetError", getError);
        ASSIGN("glGetFloatv", getFloatv);
        ASSIGN("glGetIntegerv", getIntegerv);
        ASSIGN("glGetString", getString);
        ASSIGN("glGetTexImage", getTexImage);
        ASSIGN("glGetTexLevelParameterfv", getTexLevelParameterfv);
        ASSIGN("glGetTexLevelParameteriv", getTexLevelParameteriv);
        ASSIGN("glGetTexParameterfv", getTexParameterfv);
        ASSIGN("glGetTexParameteriv", getTexParameteriv);
        ASSIGN("glHint", hint);
        ASSIGN("glIsEnabled", isEnabled);
        ASSIGN("glLineWidth", lineWidth);
        ASSIGN("glLogicOp", logicOp);
        ASSIGN("glPixelStoref", pixelStoref);
        ASSIGN("glPixelStorei", pixelStorei);
        ASSIGN("glPointSize", pointSize);
        ASSIGN("glPolygonMode", polygonMode);
        ASSIGN("glReadBuffer", readBuffer);
        ASSIGN("glReadPixels", readPixels);
        ASSIGN("glScissor", scissor);
        ASSIGN("glStencilFunc", stencilFunc);
        ASSIGN("glStencilMask", stencilMask);
        ASSIGN("glStencilOp", stencilOp);
        ASSIGN("glTexImage1D", texImage1D);
        ASSIGN("glTexImage2D", texImage2D);
        ASSIGN("glTexParameterf", texParameterf);
        ASSIGN("glTexParameterfv", texParameterfv);
        ASSIGN("glTexParameteri", texParameteri);
        ASSIGN("glTexParameteriv", texParameteriv);
        ASSIGN("glViewport", viewport);
    }

    if (version >= gl::Version(1, 1))
    {
        ASSIGN("glBindTexture", bindTexture);
        ASSIGN("glCopyTexImage1D", copyTexImage1D);
        ASSIGN("glCopyTexImage2D", copyTexImage2D);
        ASSIGN("glCopyTexSubImage1D", copyTexSubImage1D);
        ASSIGN("glCopyTexSubImage2D", copyTexSubImage2D);
        ASSIGN("glDeleteTextures", deleteTextures);
        ASSIGN("glDrawArrays", drawArrays);
        ASSIGN("glDrawElements", drawElements);
        ASSIGN("glGenTextures", genTextures);
        ASSIGN("glIsTexture", isTexture);
        ASSIGN("glPolygonOffset", polygonOffset);
        ASSIGN("glTexSubImage1D", texSubImage1D);
        ASSIGN("glTexSubImage2D", texSubImage2D);
    }

    if (version >= gl::Version(1, 2))
    {
        ASSIGN("glCopyTexSubImage3D", copyTexSubImage3D);
        ASSIGN("glDrawRangeElements", drawRangeElements);
        ASSIGN("glTexImage3D", texImage3D);
        ASSIGN("glTexSubImage3D", texSubImage3D);
    }

    if (version >= gl::Version(1, 3))
    {
        ASSIGN("glActiveTexture", activeTexture);
        ASSIGN("glCompressedTexImage1D", compressedTexImage1D);
        ASSIGN("glCompressedTexImage2D", compressedTexImage2D);
        ASSIGN("glCompressedTexImage3D", compressedTexImage3D);
        ASSIGN("glCompressedTexSubImage1D", compressedTexSubImage1D);
        ASSIGN("glCompressedTexSubImage2D", compressedTexSubImage2D);
        ASSIGN("glCompressedTexSubImage3D", compressedTexSubImage3D);
        ASSIGN("glGetCompressedTexImage", getCompressedTexImage);
        ASSIGN("glSampleCoverage", sampleCoverage);
    }

    if (version >= gl::Version(1, 4))
    {
        ASSIGN("glBlendColor", blendColor);
        ASSIGN("glBlendEquation", blendEquation);
        ASSIGN("glBlendFuncSeparate", blendFuncSeparate);
        ASSIGN("glMultiDrawArrays", multiDrawArrays);
        ASSIGN("glMultiDrawElements", multiDrawElements);
        ASSIGN("glPointParameterf", pointParameterf);
        ASSIGN("glPointParameterfv", pointParameterfv);
        ASSIGN("glPointParameteri", pointParameteri);
        ASSIGN("glPointParameteriv", pointParameteriv);
    }

    if (version >= gl::Version(1, 5))
    {
        ASSIGN("glBeginQuery", beginQuery);
        ASSIGN("glBindBuffer", bindBuffer);
        ASSIGN("glBufferData", bufferData);
        ASSIGN("glBufferSubData", bufferSubData);
        ASSIGN("glDeleteBuffers", deleteBuffers);
        ASSIGN("glDeleteQueries", deleteQueries);
        ASSIGN("glEndQuery", endQuery);
        ASSIGN("glGenBuffers", genBuffers);
        ASSIGN("glGenQueries", genQueries);
        ASSIGN("glGetBufferParameteriv", getBufferParameteriv);
        ASSIGN("glGetBufferPointerv", getBufferPointerv);
        ASSIGN("glGetBufferSubData", getBufferSubData);
        ASSIGN("glGetQueryObjectiv", getQueryObjectiv);
        ASSIGN("glGetQueryObjectuiv", getQueryObjectuiv);
        ASSIGN("glGetQueryiv", getQueryiv);
        ASSIGN("glIsBuffer", isBuffer);
        ASSIGN("glIsQuery", isQuery);
        ASSIGN("glMapBuffer", mapBuffer);
        ASSIGN("glUnmapBuffer", unmapBuffer);
    }

    if (version >= gl::Version(2, 0))
    {
        ASSIGN("glAttachShader", attachShader);
        ASSIGN("glBindAttribLocation", bindAttribLocation);
        ASSIGN("glBlendEquationSeparate", blendEquationSeparate);
        ASSIGN("glCompileShader", compileShader);
        ASSIGN("glCreateProgram", createProgram);
        ASSIGN("glCreateShader", createShader);
        ASSIGN("glDeleteProgram", deleteProgram);
        ASSIGN("glDeleteShader", deleteShader);
        ASSIGN("glDetachShader", detachShader);
        ASSIGN("glDisableVertexAttribArray", disableVertexAttribArray);
        ASSIGN("glDrawBuffers", drawBuffers);
        ASSIGN("glEnableVertexAttribArray", enableVertexAttribArray);
        ASSIGN("glGetActiveAttrib", getActiveAttrib);
        ASSIGN("glGetActiveUniform", getActiveUniform);
        ASSIGN("glGetAttachedShaders", getAttachedShaders);
        ASSIGN("glGetAttribLocation", getAttribLocation);
        ASSIGN("glGetProgramInfoLog", getProgramInfoLog);
        ASSIGN("glGetProgramiv", getProgramiv);
        ASSIGN("glGetShaderInfoLog", getShaderInfoLog);
        ASSIGN("glGetShaderSource", getShaderSource);
        ASSIGN("glGetShaderiv", getShaderiv);
        ASSIGN("glGetUniformLocation", getUniformLocation);
        ASSIGN("glGetUniformfv", getUniformfv);
        ASSIGN("glGetUniformiv", getUniformiv);
        ASSIGN("glGetVertexAttribPointerv", getVertexAttribPointerv);
        ASSIGN("glGetVertexAttribdv", getVertexAttribdv);
        ASSIGN("glGetVertexAttribfv", getVertexAttribfv);
        ASSIGN("glGetVertexAttribiv", getVertexAttribiv);
        ASSIGN("glIsProgram", isProgram);
        ASSIGN("glIsShader", isShader);
        ASSIGN("glLinkProgram", linkProgram);
        ASSIGN("glShaderSource", shaderSource);
        ASSIGN("glStencilFuncSeparate", stencilFuncSeparate);
        ASSIGN("glStencilMaskSeparate", stencilMaskSeparate);
        ASSIGN("glStencilOpSeparate", stencilOpSeparate);
        ASSIGN("glUniform1f", uniform1f);
        ASSIGN("glUniform1fv", uniform1fv);
        ASSIGN("glUniform1i", uniform1i);
        ASSIGN("glUniform1iv", uniform1iv);
        ASSIGN("glUniform2f", uniform2f);
        ASSIGN("glUniform2fv", uniform2fv);
        ASSIGN("glUniform2i", uniform2i);
        ASSIGN("glUniform2iv", uniform2iv);
        ASSIGN("glUniform3f", uniform3f);
        ASSIGN("glUniform3fv", uniform3fv);
        ASSIGN("glUniform3i", uniform3i);
        ASSIGN("glUniform3iv", uniform3iv);
        ASSIGN("glUniform4f", uniform4f);
        ASSIGN("glUniform4fv", uniform4fv);
        ASSIGN("glUniform4i", uniform4i);
        ASSIGN("glUniform4iv", uniform4iv);
        ASSIGN("glUniformMatrix2fv", uniformMatrix2fv);
        ASSIGN("glUniformMatrix3fv", uniformMatrix3fv);
        ASSIGN("glUniformMatrix4fv", uniformMatrix4fv);
        ASSIGN("glUseProgram", useProgram);
        ASSIGN("glValidateProgram", validateProgram);
        ASSIGN("glVertexAttrib1d", vertexAttrib1d);
        ASSIGN("glVertexAttrib1dv", vertexAttrib1dv);
        ASSIGN("glVertexAttrib1f", vertexAttrib1f);
        ASSIGN("glVertexAttrib1fv", vertexAttrib1fv);
        ASSIGN("glVertexAttrib1s", vertexAttrib1s);
        ASSIGN("glVertexAttrib1sv", vertexAttrib1sv);
        ASSIGN("glVertexAttrib2d", vertexAttrib2d);
        ASSIGN("glVertexAttrib2dv", vertexAttrib2dv);
        ASSIGN("glVertexAttrib2f", vertexAttrib2f);
        ASSIGN("glVertexAttrib2fv", vertexAttrib2fv);
        ASSIGN("glVertexAttrib2s", vertexAttrib2s);
        ASSIGN("glVertexAttrib2sv", vertexAttrib2sv);
        ASSIGN("glVertexAttrib3d", vertexAttrib3d);
        ASSIGN("glVertexAttrib3dv", vertexAttrib3dv);
        ASSIGN("glVertexAttrib3f", vertexAttrib3f);
        ASSIGN("glVertexAttrib3fv", vertexAttrib3fv);
        ASSIGN("glVertexAttrib3s", vertexAttrib3s);
        ASSIGN("glVertexAttrib3sv", vertexAttrib3sv);
        ASSIGN("glVertexAttrib4Nbv", vertexAttrib4Nbv);
        ASSIGN("glVertexAttrib4Niv", vertexAttrib4Niv);
        ASSIGN("glVertexAttrib4Nsv", vertexAttrib4Nsv);
        ASSIGN("glVertexAttrib4Nub", vertexAttrib4Nub);
        ASSIGN("glVertexAttrib4Nubv", vertexAttrib4Nubv);
        ASSIGN("glVertexAttrib4Nuiv", vertexAttrib4Nuiv);
        ASSIGN("glVertexAttrib4Nusv", vertexAttrib4Nusv);
        ASSIGN("glVertexAttrib4bv", vertexAttrib4bv);
        ASSIGN("glVertexAttrib4d", vertexAttrib4d);
        ASSIGN("glVertexAttrib4dv", vertexAttrib4dv);
        ASSIGN("glVertexAttrib4f", vertexAttrib4f);
        ASSIGN("glVertexAttrib4fv", vertexAttrib4fv);
        ASSIGN("glVertexAttrib4iv", vertexAttrib4iv);
        ASSIGN("glVertexAttrib4s", vertexAttrib4s);
        ASSIGN("glVertexAttrib4sv", vertexAttrib4sv);
        ASSIGN("glVertexAttrib4ubv", vertexAttrib4ubv);
        ASSIGN("glVertexAttrib4uiv", vertexAttrib4uiv);
        ASSIGN("glVertexAttrib4usv", vertexAttrib4usv);
        ASSIGN("glVertexAttribPointer", vertexAttribPointer);
    }

    if (version >= gl::Version(2, 1))
    {
        ASSIGN("glUniformMatrix2x3fv", uniformMatrix2x3fv);
        ASSIGN("glUniformMatrix2x4fv", uniformMatrix2x4fv);
        ASSIGN("glUniformMatrix3x2fv", uniformMatrix3x2fv);
        ASSIGN("glUniformMatrix3x4fv", uniformMatrix3x4fv);
        ASSIGN("glUniformMatrix4x2fv", uniformMatrix4x2fv);
        ASSIGN("glUniformMatrix4x3fv", uniformMatrix4x3fv);
    }

    if (version >= gl::Version(3, 0))
    {
        ASSIGN("glBeginConditionalRender", beginConditionalRender);
        ASSIGN("glBeginTransformFeedback", beginTransformFeedback);
        ASSIGN("glBindBufferBase", bindBufferBase);
        ASSIGN("glBindBufferRange", bindBufferRange);
        ASSIGN("glBindFragDataLocation", bindFragDataLocation);
        ASSIGN("glBindFramebuffer", bindFramebuffer);
        ASSIGN("glBindRenderbuffer", bindRenderbuffer);
        ASSIGN("glBindVertexArray", bindVertexArray);
        ASSIGN("glBlitFramebuffer", blitFramebuffer);
        ASSIGN("glCheckFramebufferStatus", checkFramebufferStatus);
        ASSIGN("glClampColor", clampColor);
        ASSIGN("glClearBufferfi", clearBufferfi);
        ASSIGN("glClearBufferfv", clearBufferfv);
        ASSIGN("glClearBufferiv", clearBufferiv);
        ASSIGN("glClearBufferuiv", clearBufferuiv);
        ASSIGN("glColorMaski", colorMaski);
        ASSIGN("glDeleteFramebuffers", deleteFramebuffers);
        ASSIGN("glDeleteRenderbuffers", deleteRenderbuffers);
        ASSIGN("glDeleteVertexArrays", deleteVertexArrays);
        ASSIGN("glDisablei", disablei);
        ASSIGN("glEnablei", enablei);
        ASSIGN("glEndConditionalRender", endConditionalRender);
        ASSIGN("glEndTransformFeedback", endTransformFeedback);
        ASSIGN("glFlushMappedBufferRange", flushMappedBufferRange);
        ASSIGN("glFramebufferRenderbuffer", framebufferRenderbuffer);
        ASSIGN("glFramebufferTexture1D", framebufferTexture1D);
        ASSIGN("glFramebufferTexture2D", framebufferTexture2D);
        ASSIGN("glFramebufferTexture3D", framebufferTexture3D);
        ASSIGN("glFramebufferTextureLayer", framebufferTextureLayer);
        ASSIGN("glGenFramebuffers", genFramebuffers);
        ASSIGN("glGenRenderbuffers", genRenderbuffers);
        ASSIGN("glGenVertexArrays", genVertexArrays);
        ASSIGN("glGenerateMipmap", generateMipmap);
        ASSIGN("glGetBooleani_v", getBooleani_v);
        ASSIGN("glGetFragDataLocation", getFragDataLocation);
        ASSIGN("glGetFramebufferAttachmentParameteriv", getFramebufferAttachmentParameteriv);
        ASSIGN("glGetIntegeri_v", getIntegeri_v);
        ASSIGN("glGetRenderbufferParameteriv", getRenderbufferParameteriv);
        ASSIGN("glGetStringi", getStringi);
        ASSIGN("glGetTexParameterIiv", getTexParameterIiv);
        ASSIGN("glGetTexParameterIuiv", getTexParameterIuiv);
        ASSIGN("glGetTransformFeedbackVarying", getTransformFeedbackVarying);
        ASSIGN("glGetUniformuiv", getUniformuiv);
        ASSIGN("glGetVertexAttribIiv", getVertexAttribIiv);
        ASSIGN("glGetVertexAttribIuiv", getVertexAttribIuiv);
        ASSIGN("glIsEnabledi", isEnabledi);
        ASSIGN("glIsFramebuffer", isFramebuffer);
        ASSIGN("glIsRenderbuffer", isRenderbuffer);
        ASSIGN("glIsVertexArray", isVertexArray);
        ASSIGN("glMapBufferRange", mapBufferRange);
        ASSIGN("glRenderbufferStorage", renderbufferStorage);
        ASSIGN("glRenderbufferStorageMultisample", renderbufferStorageMultisample);
        ASSIGN("glTexParameterIiv", texParameterIiv);
        ASSIGN("glTexParameterIuiv", texParameterIuiv);
        ASSIGN("glTransformFeedbackVaryings", transformFeedbackVaryings);
        ASSIGN("glUniform1ui", uniform1ui);
        ASSIGN("glUniform1uiv", uniform1uiv);
        ASSIGN("glUniform2ui", uniform2ui);
        ASSIGN("glUniform2uiv", uniform2uiv);
        ASSIGN("glUniform3ui", uniform3ui);
        ASSIGN("glUniform3uiv", uniform3uiv);
        ASSIGN("glUniform4ui", uniform4ui);
        ASSIGN("glUniform4uiv", uniform4uiv);
        ASSIGN("glVertexAttribI1i", vertexAttribI1i);
        ASSIGN("glVertexAttribI1iv", vertexAttribI1iv);
        ASSIGN("glVertexAttribI1ui", vertexAttribI1ui);
        ASSIGN("glVertexAttribI1uiv", vertexAttribI1uiv);
        ASSIGN("glVertexAttribI2i", vertexAttribI2i);
        ASSIGN("glVertexAttribI2iv", vertexAttribI2iv);
        ASSIGN("glVertexAttribI2ui", vertexAttribI2ui);
        ASSIGN("glVertexAttribI2uiv", vertexAttribI2uiv);
        ASSIGN("glVertexAttribI3i", vertexAttribI3i);
        ASSIGN("glVertexAttribI3iv", vertexAttribI3iv);
        ASSIGN("glVertexAttribI3ui", vertexAttribI3ui);
        ASSIGN("glVertexAttribI3uiv", vertexAttribI3uiv);
        ASSIGN("glVertexAttribI4bv", vertexAttribI4bv);
        ASSIGN("glVertexAttribI4i", vertexAttribI4i);
        ASSIGN("glVertexAttribI4iv", vertexAttribI4iv);
        ASSIGN("glVertexAttribI4sv", vertexAttribI4sv);
        ASSIGN("glVertexAttribI4ubv", vertexAttribI4ubv);
        ASSIGN("glVertexAttribI4ui", vertexAttribI4ui);
        ASSIGN("glVertexAttribI4uiv", vertexAttribI4uiv);
        ASSIGN("glVertexAttribI4usv", vertexAttribI4usv);
        ASSIGN("glVertexAttribIPointer", vertexAttribIPointer);
    }

    if (version >= gl::Version(3, 1))
    {
        ASSIGN("glCopyBufferSubData", copyBufferSubData);
        ASSIGN("glDrawArraysInstanced", drawArraysInstanced);
        ASSIGN("glDrawElementsInstanced", drawElementsInstanced);
        ASSIGN("glGetActiveUniformBlockName", getActiveUniformBlockName);
        ASSIGN("glGetActiveUniformBlockiv", getActiveUniformBlockiv);
        ASSIGN("glGetActiveUniformName", getActiveUniformName);
        ASSIGN("glGetActiveUniformsiv", getActiveUniformsiv);
        ASSIGN("glGetUniformBlockIndex", getUniformBlockIndex);
        ASSIGN("glGetUniformIndices", getUniformIndices);
        ASSIGN("glPrimitiveRestartIndex", primitiveRestartIndex);
        ASSIGN("glTexBuffer", texBuffer);
        ASSIGN("glUniformBlockBinding", uniformBlockBinding);
    }

    if (version >= gl::Version(3, 2))
    {
        ASSIGN("glClientWaitSync", clientWaitSync);
        ASSIGN("glDeleteSync", deleteSync);
        ASSIGN("glDrawElementsBaseVertex", drawElementsBaseVertex);
        ASSIGN("glDrawElementsInstancedBaseVertex", drawElementsInstancedBaseVertex);
        ASSIGN("glDrawRangeElementsBaseVertex", drawRangeElementsBaseVertex);
        ASSIGN("glFenceSync", fenceSync);
        ASSIGN("glFramebufferTexture", framebufferTexture);
        ASSIGN("glGetBufferParameteri64v", getBufferParameteri64v);
        ASSIGN("glGetInteger64i_v", getInteger64i_v);
        ASSIGN("glGetInteger64v", getInteger64v);
        ASSIGN("glGetMultisamplefv", getMultisamplefv);
        ASSIGN("glGetSynciv", getSynciv);
        ASSIGN("glIsSync", isSync);
        ASSIGN("glMultiDrawElementsBaseVertex", multiDrawElementsBaseVertex);
        ASSIGN("glProvokingVertex", provokingVertex);
        ASSIGN("glSampleMaski", sampleMaski);
        ASSIGN("glTexImage2DMultisample", texImage2DMultisample);
        ASSIGN("glTexImage3DMultisample", texImage3DMultisample);
        ASSIGN("glWaitSync", waitSync);
    }

    if (version >= gl::Version(3, 3))
    {
        ASSIGN("glBindFragDataLocationIndexed", bindFragDataLocationIndexed);
        ASSIGN("glBindSampler", bindSampler);
        ASSIGN("glDeleteSamplers", deleteSamplers);
        ASSIGN("glGenSamplers", genSamplers);
        ASSIGN("glGetFragDataIndex", getFragDataIndex);
        ASSIGN("glGetQueryObjecti64v", getQueryObjecti64v);
        ASSIGN("glGetQueryObjectui64v", getQueryObjectui64v);
        ASSIGN("glGetSamplerParameterIiv", getSamplerParameterIiv);
        ASSIGN("glGetSamplerParameterIuiv", getSamplerParameterIuiv);
        ASSIGN("glGetSamplerParameterfv", getSamplerParameterfv);
        ASSIGN("glGetSamplerParameteriv", getSamplerParameteriv);
        ASSIGN("glIsSampler", isSampler);
        ASSIGN("glQueryCounter", queryCounter);
        ASSIGN("glSamplerParameterIiv", samplerParameterIiv);
        ASSIGN("glSamplerParameterIuiv", samplerParameterIuiv);
        ASSIGN("glSamplerParameterf", samplerParameterf);
        ASSIGN("glSamplerParameterfv", samplerParameterfv);
        ASSIGN("glSamplerParameteri", samplerParameteri);
        ASSIGN("glSamplerParameteriv", samplerParameteriv);
        ASSIGN("glVertexAttribDivisor", vertexAttribDivisor);
        ASSIGN("glVertexAttribP1ui", vertexAttribP1ui);
        ASSIGN("glVertexAttribP1uiv", vertexAttribP1uiv);
        ASSIGN("glVertexAttribP2ui", vertexAttribP2ui);
        ASSIGN("glVertexAttribP2uiv", vertexAttribP2uiv);
        ASSIGN("glVertexAttribP3ui", vertexAttribP3ui);
        ASSIGN("glVertexAttribP3uiv", vertexAttribP3uiv);
        ASSIGN("glVertexAttribP4ui", vertexAttribP4ui);
        ASSIGN("glVertexAttribP4uiv", vertexAttribP4uiv);
    }

    if (version >= gl::Version(4, 0))
    {
        ASSIGN("glBeginQueryIndexed", beginQueryIndexed);
        ASSIGN("glBindTransformFeedback", bindTransformFeedback);
        ASSIGN("glBlendEquationSeparatei", blendEquationSeparatei);
        ASSIGN("glBlendEquationi", blendEquationi);
        ASSIGN("glBlendFuncSeparatei", blendFuncSeparatei);
        ASSIGN("glBlendFunci", blendFunci);
        ASSIGN("glDeleteTransformFeedbacks", deleteTransformFeedbacks);
        ASSIGN("glDrawArraysIndirect", drawArraysIndirect);
        ASSIGN("glDrawElementsIndirect", drawElementsIndirect);
        ASSIGN("glDrawTransformFeedback", drawTransformFeedback);
        ASSIGN("glDrawTransformFeedbackStream", drawTransformFeedbackStream);
        ASSIGN("glEndQueryIndexed", endQueryIndexed);
        ASSIGN("glGenTransformFeedbacks", genTransformFeedbacks);
        ASSIGN("glGetActiveSubroutineName", getActiveSubroutineName);
        ASSIGN("glGetActiveSubroutineUniformName", getActiveSubroutineUniformName);
        ASSIGN("glGetActiveSubroutineUniformiv", getActiveSubroutineUniformiv);
        ASSIGN("glGetProgramStageiv", getProgramStageiv);
        ASSIGN("glGetQueryIndexediv", getQueryIndexediv);
        ASSIGN("glGetSubroutineIndex", getSubroutineIndex);
        ASSIGN("glGetSubroutineUniformLocation", getSubroutineUniformLocation);
        ASSIGN("glGetUniformSubroutineuiv", getUniformSubroutineuiv);
        ASSIGN("glGetUniformdv", getUniformdv);
        ASSIGN("glIsTransformFeedback", isTransformFeedback);
        ASSIGN("glMinSampleShading", minSampleShading);
        ASSIGN("glPatchParameterfv", patchParameterfv);
        ASSIGN("glPatchParameteri", patchParameteri);
        ASSIGN("glPauseTransformFeedback", pauseTransformFeedback);
        ASSIGN("glResumeTransformFeedback", resumeTransformFeedback);
        ASSIGN("glUniform1d", uniform1d);
        ASSIGN("glUniform1dv", uniform1dv);
        ASSIGN("glUniform2d", uniform2d);
        ASSIGN("glUniform2dv", uniform2dv);
        ASSIGN("glUniform3d", uniform3d);
        ASSIGN("glUniform3dv", uniform3dv);
        ASSIGN("glUniform4d", uniform4d);
        ASSIGN("glUniform4dv", uniform4dv);
        ASSIGN("glUniformMatrix2dv", uniformMatrix2dv);
        ASSIGN("glUniformMatrix2x3dv", uniformMatrix2x3dv);
        ASSIGN("glUniformMatrix2x4dv", uniformMatrix2x4dv);
        ASSIGN("glUniformMatrix3dv", uniformMatrix3dv);
        ASSIGN("glUniformMatrix3x2dv", uniformMatrix3x2dv);
        ASSIGN("glUniformMatrix3x4dv", uniformMatrix3x4dv);
        ASSIGN("glUniformMatrix4dv", uniformMatrix4dv);
        ASSIGN("glUniformMatrix4x2dv", uniformMatrix4x2dv);
        ASSIGN("glUniformMatrix4x3dv", uniformMatrix4x3dv);
        ASSIGN("glUniformSubroutinesuiv", uniformSubroutinesuiv);
    }

    if (version >= gl::Version(4, 1))
    {
        ASSIGN("glActiveShaderProgram", activeShaderProgram);
        ASSIGN("glBindProgramPipeline", bindProgramPipeline);
        ASSIGN("glClearDepthf", clearDepthf);
        ASSIGN("glCreateShaderProgramv", createShaderProgramv);
        ASSIGN("glDeleteProgramPipelines", deleteProgramPipelines);
        ASSIGN("glDepthRangeArrayv", depthRangeArrayv);
        ASSIGN("glDepthRangeIndexed", depthRangeIndexed);
        ASSIGN("glDepthRangef", depthRangef);
        ASSIGN("glGenProgramPipelines", genProgramPipelines);
        ASSIGN("glGetDoublei_v", getDoublei_v);
        ASSIGN("glGetFloati_v", getFloati_v);
        ASSIGN("glGetProgramBinary", getProgramBinary);
        ASSIGN("glGetProgramPipelineInfoLog", getProgramPipelineInfoLog);
        ASSIGN("glGetProgramPipelineiv", getProgramPipelineiv);
        ASSIGN("glGetShaderPrecisionFormat", getShaderPrecisionFormat);
        ASSIGN("glGetVertexAttribLdv", getVertexAttribLdv);
        ASSIGN("glIsProgramPipeline", isProgramPipeline);
        ASSIGN("glProgramBinary", programBinary);
        ASSIGN("glProgramParameteri", programParameteri);
        ASSIGN("glProgramUniform1d", programUniform1d);
        ASSIGN("glProgramUniform1dv", programUniform1dv);
        ASSIGN("glProgramUniform1f", programUniform1f);
        ASSIGN("glProgramUniform1fv", programUniform1fv);
        ASSIGN("glProgramUniform1i", programUniform1i);
        ASSIGN("glProgramUniform1iv", programUniform1iv);
        ASSIGN("glProgramUniform1ui", programUniform1ui);
        ASSIGN("glProgramUniform1uiv", programUniform1uiv);
        ASSIGN("glProgramUniform2d", programUniform2d);
        ASSIGN("glProgramUniform2dv", programUniform2dv);
        ASSIGN("glProgramUniform2f", programUniform2f);
        ASSIGN("glProgramUniform2fv", programUniform2fv);
        ASSIGN("glProgramUniform2i", programUniform2i);
        ASSIGN("glProgramUniform2iv", programUniform2iv);
        ASSIGN("glProgramUniform2ui", programUniform2ui);
        ASSIGN("glProgramUniform2uiv", programUniform2uiv);
        ASSIGN("glProgramUniform3d", programUniform3d);
        ASSIGN("glProgramUniform3dv", programUniform3dv);
        ASSIGN("glProgramUniform3f", programUniform3f);
        ASSIGN("glProgramUniform3fv", programUniform3fv);
        ASSIGN("glProgramUniform3i", programUniform3i);
        ASSIGN("glProgramUniform3iv", programUniform3iv);
        ASSIGN("glProgramUniform3ui", programUniform3ui);
        ASSIGN("glProgramUniform3uiv", programUniform3uiv);
        ASSIGN("glProgramUniform4d", programUniform4d);
        ASSIGN("glProgramUniform4dv", programUniform4dv);
        ASSIGN("glProgramUniform4f", programUniform4f);
        ASSIGN("glProgramUniform4fv", programUniform4fv);
        ASSIGN("glProgramUniform4i", programUniform4i);
        ASSIGN("glProgramUniform4iv", programUniform4iv);
        ASSIGN("glProgramUniform4ui", programUniform4ui);
        ASSIGN("glProgramUniform4uiv", programUniform4uiv);
        ASSIGN("glProgramUniformMatrix2dv", programUniformMatrix2dv);
        ASSIGN("glProgramUniformMatrix2fv", programUniformMatrix2fv);
        ASSIGN("glProgramUniformMatrix2x3dv", programUniformMatrix2x3dv);
        ASSIGN("glProgramUniformMatrix2x3fv", programUniformMatrix2x3fv);
        ASSIGN("glProgramUniformMatrix2x4dv", programUniformMatrix2x4dv);
        ASSIGN("glProgramUniformMatrix2x4fv", programUniformMatrix2x4fv);
        ASSIGN("glProgramUniformMatrix3dv", programUniformMatrix3dv);
        ASSIGN("glProgramUniformMatrix3fv", programUniformMatrix3fv);
        ASSIGN("glProgramUniformMatrix3x2dv", programUniformMatrix3x2dv);
        ASSIGN("glProgramUniformMatrix3x2fv", programUniformMatrix3x2fv);
        ASSIGN("glProgramUniformMatrix3x4dv", programUniformMatrix3x4dv);
        ASSIGN("glProgramUniformMatrix3x4fv", programUniformMatrix3x4fv);
        ASSIGN("glProgramUniformMatrix4dv", programUniformMatrix4dv);
        ASSIGN("glProgramUniformMatrix4fv", programUniformMatrix4fv);
        ASSIGN("glProgramUniformMatrix4x2dv", programUniformMatrix4x2dv);
        ASSIGN("glProgramUniformMatrix4x2fv", programUniformMatrix4x2fv);
        ASSIGN("glProgramUniformMatrix4x3dv", programUniformMatrix4x3dv);
        ASSIGN("glProgramUniformMatrix4x3fv", programUniformMatrix4x3fv);
        ASSIGN("glReleaseShaderCompiler", releaseShaderCompiler);
        ASSIGN("glScissorArrayv", scissorArrayv);
        ASSIGN("glScissorIndexed", scissorIndexed);
        ASSIGN("glScissorIndexedv", scissorIndexedv);
        ASSIGN("glShaderBinary", shaderBinary);
        ASSIGN("glUseProgramStages", useProgramStages);
        ASSIGN("glValidateProgramPipeline", validateProgramPipeline);
        ASSIGN("glVertexAttribL1d", vertexAttribL1d);
        ASSIGN("glVertexAttribL1dv", vertexAttribL1dv);
        ASSIGN("glVertexAttribL2d", vertexAttribL2d);
        ASSIGN("glVertexAttribL2dv", vertexAttribL2dv);
        ASSIGN("glVertexAttribL3d", vertexAttribL3d);
        ASSIGN("glVertexAttribL3dv", vertexAttribL3dv);
        ASSIGN("glVertexAttribL4d", vertexAttribL4d);
        ASSIGN("glVertexAttribL4dv", vertexAttribL4dv);
        ASSIGN("glVertexAttribLPointer", vertexAttribLPointer);
        ASSIGN("glViewportArrayv", viewportArrayv);
        ASSIGN("glViewportIndexedf", viewportIndexedf);
        ASSIGN("glViewportIndexedfv", viewportIndexedfv);
    }

    if (version >= gl::Version(4, 2))
    {
        ASSIGN("glBindImageTexture", bindImageTexture);
        ASSIGN("glDrawArraysInstancedBaseInstance", drawArraysInstancedBaseInstance);
        ASSIGN("glDrawElementsInstancedBaseInstance", drawElementsInstancedBaseInstance);
        ASSIGN("glDrawElementsInstancedBaseVertexBaseInstance",
               drawElementsInstancedBaseVertexBaseInstance);
        ASSIGN("glDrawTransformFeedbackInstanced", drawTransformFeedbackInstanced);
        ASSIGN("glDrawTransformFeedbackStreamInstanced", drawTransformFeedbackStreamInstanced);
        ASSIGN("glGetActiveAtomicCounterBufferiv", getActiveAtomicCounterBufferiv);
        ASSIGN("glGetInternalformativ", getInternalformativ);
        ASSIGN("glMemoryBarrier", memoryBarrier);
        ASSIGN("glTexStorage1D", texStorage1D);
        ASSIGN("glTexStorage2D", texStorage2D);
        ASSIGN("glTexStorage3D", texStorage3D);
    }

    if (version >= gl::Version(4, 3))
    {
        ASSIGN("glBindVertexBuffer", bindVertexBuffer);
        ASSIGN("glClearBufferData", clearBufferData);
        ASSIGN("glClearBufferSubData", clearBufferSubData);
        ASSIGN("glCopyImageSubData", copyImageSubData);
        ASSIGN("glDebugMessageCallback", debugMessageCallback);
        ASSIGN("glDebugMessageControl", debugMessageControl);
        ASSIGN("glDebugMessageInsert", debugMessageInsert);
        ASSIGN("glDispatchCompute", dispatchCompute);
        ASSIGN("glDispatchComputeIndirect", dispatchComputeIndirect);
        ASSIGN("glFramebufferParameteri", framebufferParameteri);
        ASSIGN("glGetDebugMessageLog", getDebugMessageLog);
        ASSIGN("glGetFramebufferParameteriv", getFramebufferParameteriv);
        ASSIGN("glGetInternalformati64v", getInternalformati64v);
        ASSIGN("glGetObjectLabel", getObjectLabel);
        ASSIGN("glGetObjectPtrLabel", getObjectPtrLabel);
        ASSIGN("glGetPointerv", getPointerv);
        ASSIGN("glGetProgramInterfaceiv", getProgramInterfaceiv);
        ASSIGN("glGetProgramResourceIndex", getProgramResourceIndex);
        ASSIGN("glGetProgramResourceLocation", getProgramResourceLocation);
        ASSIGN("glGetProgramResourceLocationIndex", getProgramResourceLocationIndex);
        ASSIGN("glGetProgramResourceName", getProgramResourceName);
        ASSIGN("glGetProgramResourceiv", getProgramResourceiv);
        ASSIGN("glInvalidateBufferData", invalidateBufferData);
        ASSIGN("glInvalidateBufferSubData", invalidateBufferSubData);
        ASSIGN("glInvalidateFramebuffer", invalidateFramebuffer);
        ASSIGN("glInvalidateSubFramebuffer", invalidateSubFramebuffer);
        ASSIGN("glInvalidateTexImage", invalidateTexImage);
        ASSIGN("glInvalidateTexSubImage", invalidateTexSubImage);
        ASSIGN("glMultiDrawArraysIndirect", multiDrawArraysIndirect);
        ASSIGN("glMultiDrawElementsIndirect", multiDrawElementsIndirect);
        ASSIGN("glObjectLabel", objectLabel);
        ASSIGN("glObjectPtrLabel", objectPtrLabel);
        ASSIGN("glPopDebugGroup", popDebugGroup);
        ASSIGN("glPushDebugGroup", pushDebugGroup);
        ASSIGN("glShaderStorageBlockBinding", shaderStorageBlockBinding);
        ASSIGN("glTexBufferRange", texBufferRange);
        ASSIGN("glTexStorage2DMultisample", texStorage2DMultisample);
        ASSIGN("glTexStorage3DMultisample", texStorage3DMultisample);
        ASSIGN("glTextureView", textureView);
        ASSIGN("glVertexAttribBinding", vertexAttribBinding);
        ASSIGN("glVertexAttribFormat", vertexAttribFormat);
        ASSIGN("glVertexAttribIFormat", vertexAttribIFormat);
        ASSIGN("glVertexAttribLFormat", vertexAttribLFormat);
        ASSIGN("glVertexBindingDivisor", vertexBindingDivisor);
    }

    if (version >= gl::Version(4, 4))
    {
        ASSIGN("glBindBuffersBase", bindBuffersBase);
        ASSIGN("glBindBuffersRange", bindBuffersRange);
        ASSIGN("glBindImageTextures", bindImageTextures);
        ASSIGN("glBindSamplers", bindSamplers);
        ASSIGN("glBindTextures", bindTextures);
        ASSIGN("glBindVertexBuffers", bindVertexBuffers);
        ASSIGN("glBufferStorage", bufferStorage);
        ASSIGN("glClearTexImage", clearTexImage);
        ASSIGN("glClearTexSubImage", clearTexSubImage);
    }

    if (version >= gl::Version(4, 5))
    {
        ASSIGN("glBindTextureUnit", bindTextureUnit);
        ASSIGN("glBlitNamedFramebuffer", blitNamedFramebuffer);
        ASSIGN("glCheckNamedFramebufferStatus", checkNamedFramebufferStatus);
        ASSIGN("glClearNamedBufferData", clearNamedBufferData);
        ASSIGN("glClearNamedBufferSubData", clearNamedBufferSubData);
        ASSIGN("glClearNamedFramebufferfi", clearNamedFramebufferfi);
        ASSIGN("glClearNamedFramebufferfv", clearNamedFramebufferfv);
        ASSIGN("glClearNamedFramebufferiv", clearNamedFramebufferiv);
        ASSIGN("glClearNamedFramebufferuiv", clearNamedFramebufferuiv);
        ASSIGN("glClipControl", clipControl);
        ASSIGN("glCompressedTextureSubImage1D", compressedTextureSubImage1D);
        ASSIGN("glCompressedTextureSubImage2D", compressedTextureSubImage2D);
        ASSIGN("glCompressedTextureSubImage3D", compressedTextureSubImage3D);
        ASSIGN("glCopyNamedBufferSubData", copyNamedBufferSubData);
        ASSIGN("glCopyTextureSubImage1D", copyTextureSubImage1D);
        ASSIGN("glCopyTextureSubImage2D", copyTextureSubImage2D);
        ASSIGN("glCopyTextureSubImage3D", copyTextureSubImage3D);
        ASSIGN("glCreateBuffers", createBuffers);
        ASSIGN("glCreateFramebuffers", createFramebuffers);
        ASSIGN("glCreateProgramPipelines", createProgramPipelines);
        ASSIGN("glCreateQueries", createQueries);
        ASSIGN("glCreateRenderbuffers", createRenderbuffers);
        ASSIGN("glCreateSamplers", createSamplers);
        ASSIGN("glCreateTextures", createTextures);
        ASSIGN("glCreateTransformFeedbacks", createTransformFeedbacks);
        ASSIGN("glCreateVertexArrays", createVertexArrays);
        ASSIGN("glDisableVertexArrayAttrib", disableVertexArrayAttrib);
        ASSIGN("glEnableVertexArrayAttrib", enableVertexArrayAttrib);
        ASSIGN("glFlushMappedNamedBufferRange", flushMappedNamedBufferRange);
        ASSIGN("glGenerateTextureMipmap", generateTextureMipmap);
        ASSIGN("glGetCompressedTextureImage", getCompressedTextureImage);
        ASSIGN("glGetCompressedTextureSubImage", getCompressedTextureSubImage);
        ASSIGN("glGetGraphicsResetStatus", getGraphicsResetStatus);
        ASSIGN("glGetNamedBufferParameteri64v", getNamedBufferParameteri64v);
        ASSIGN("glGetNamedBufferParameteriv", getNamedBufferParameteriv);
        ASSIGN("glGetNamedBufferPointerv", getNamedBufferPointerv);
        ASSIGN("glGetNamedBufferSubData", getNamedBufferSubData);
        ASSIGN("glGetNamedFramebufferAttachmentParameteriv",
               getNamedFramebufferAttachmentParameteriv);
        ASSIGN("glGetNamedFramebufferParameteriv", getNamedFramebufferParameteriv);
        ASSIGN("glGetNamedRenderbufferParameteriv", getNamedRenderbufferParameteriv);
        ASSIGN("glGetQueryBufferObjecti64v", getQueryBufferObjecti64v);
        ASSIGN("glGetQueryBufferObjectiv", getQueryBufferObjectiv);
        ASSIGN("glGetQueryBufferObjectui64v", getQueryBufferObjectui64v);
        ASSIGN("glGetQueryBufferObjectuiv", getQueryBufferObjectuiv);
        ASSIGN("glGetTextureImage", getTextureImage);
        ASSIGN("glGetTextureLevelParameterfv", getTextureLevelParameterfv);
        ASSIGN("glGetTextureLevelParameteriv", getTextureLevelParameteriv);
        ASSIGN("glGetTextureParameterIiv", getTextureParameterIiv);
        ASSIGN("glGetTextureParameterIuiv", getTextureParameterIuiv);
        ASSIGN("glGetTextureParameterfv", getTextureParameterfv);
        ASSIGN("glGetTextureParameteriv", getTextureParameteriv);
        ASSIGN("glGetTextureSubImage", getTextureSubImage);
        ASSIGN("glGetTransformFeedbacki64_v", getTransformFeedbacki64_v);
        ASSIGN("glGetTransformFeedbacki_v", getTransformFeedbacki_v);
        ASSIGN("glGetTransformFeedbackiv", getTransformFeedbackiv);
        ASSIGN("glGetVertexArrayIndexed64iv", getVertexArrayIndexed64iv);
        ASSIGN("glGetVertexArrayIndexediv", getVertexArrayIndexediv);
        ASSIGN("glGetVertexArrayiv", getVertexArrayiv);
        ASSIGN("glGetnCompressedTexImage", getnCompressedTexImage);
        ASSIGN("glGetnTexImage", getnTexImage);
        ASSIGN("glGetnUniformdv", getnUniformdv);
        ASSIGN("glGetnUniformfv", getnUniformfv);
        ASSIGN("glGetnUniformiv", getnUniformiv);
        ASSIGN("glGetnUniformuiv", getnUniformuiv);
        ASSIGN("glInvalidateNamedFramebufferData", invalidateNamedFramebufferData);
        ASSIGN("glInvalidateNamedFramebufferSubData", invalidateNamedFramebufferSubData);
        ASSIGN("glMapNamedBuffer", mapNamedBuffer);
        ASSIGN("glMapNamedBufferRange", mapNamedBufferRange);
        ASSIGN("glMemoryBarrierByRegion", memoryBarrierByRegion);
        ASSIGN("glNamedBufferData", namedBufferData);
        ASSIGN("glNamedBufferStorage", namedBufferStorage);
        ASSIGN("glNamedBufferSubData", namedBufferSubData);
        ASSIGN("glNamedFramebufferDrawBuffer", namedFramebufferDrawBuffer);
        ASSIGN("glNamedFramebufferDrawBuffers", namedFramebufferDrawBuffers);
        ASSIGN("glNamedFramebufferParameteri", namedFramebufferParameteri);
        ASSIGN("glNamedFramebufferReadBuffer", namedFramebufferReadBuffer);
        ASSIGN("glNamedFramebufferRenderbuffer", namedFramebufferRenderbuffer);
        ASSIGN("glNamedFramebufferTexture", namedFramebufferTexture);
        ASSIGN("glNamedFramebufferTextureLayer", namedFramebufferTextureLayer);
        ASSIGN("glNamedRenderbufferStorage", namedRenderbufferStorage);
        ASSIGN("glNamedRenderbufferStorageMultisample", namedRenderbufferStorageMultisample);
        ASSIGN("glReadnPixels", readnPixels);
        ASSIGN("glTextureBarrier", textureBarrier);
        ASSIGN("glTextureBuffer", textureBuffer);
        ASSIGN("glTextureBufferRange", textureBufferRange);
        ASSIGN("glTextureParameterIiv", textureParameterIiv);
        ASSIGN("glTextureParameterIuiv", textureParameterIuiv);
        ASSIGN("glTextureParameterf", textureParameterf);
        ASSIGN("glTextureParameterfv", textureParameterfv);
        ASSIGN("glTextureParameteri", textureParameteri);
        ASSIGN("glTextureParameteriv", textureParameteriv);
        ASSIGN("glTextureStorage1D", textureStorage1D);
        ASSIGN("glTextureStorage2D", textureStorage2D);
        ASSIGN("glTextureStorage2DMultisample", textureStorage2DMultisample);
        ASSIGN("glTextureStorage3D", textureStorage3D);
        ASSIGN("glTextureStorage3DMultisample", textureStorage3DMultisample);
        ASSIGN("glTextureSubImage1D", textureSubImage1D);
        ASSIGN("glTextureSubImage2D", textureSubImage2D);
        ASSIGN("glTextureSubImage3D", textureSubImage3D);
        ASSIGN("glTransformFeedbackBufferBase", transformFeedbackBufferBase);
        ASSIGN("glTransformFeedbackBufferRange", transformFeedbackBufferRange);
        ASSIGN("glUnmapNamedBuffer", unmapNamedBuffer);
        ASSIGN("glVertexArrayAttribBinding", vertexArrayAttribBinding);
        ASSIGN("glVertexArrayAttribFormat", vertexArrayAttribFormat);
        ASSIGN("glVertexArrayAttribIFormat", vertexArrayAttribIFormat);
        ASSIGN("glVertexArrayAttribLFormat", vertexArrayAttribLFormat);
        ASSIGN("glVertexArrayBindingDivisor", vertexArrayBindingDivisor);
        ASSIGN("glVertexArrayElementBuffer", vertexArrayElementBuffer);
        ASSIGN("glVertexArrayVertexBuffer", vertexArrayVertexBuffer);
        ASSIGN("glVertexArrayVertexBuffers", vertexArrayVertexBuffers);
    }
#endif  // defined(ANGLE_ENABLE_GL_DESKTOP_BACKEND)
}

void DispatchTableGL::initProcsGLES(const gl::Version &version,
                                    const std::set<std::string> &extensions)
{
    if (extensions.count("GL_EXT_base_instance") != 0)
    {
        ASSIGN("glDrawArraysInstancedBaseInstanceEXT", drawArraysInstancedBaseInstance);
        ASSIGN("glDrawElementsInstancedBaseInstanceEXT", drawElementsInstancedBaseInstance);
        ASSIGN("glDrawElementsInstancedBaseVertexBaseInstanceEXT",
               drawElementsInstancedBaseVertexBaseInstance);
    }

    if (extensions.count("GL_EXT_blend_func_extended") != 0)
    {
        ASSIGN("glBindFragDataLocationEXT", bindFragDataLocation);
        ASSIGN("glBindFragDataLocationIndexedEXT", bindFragDataLocationIndexed);
        ASSIGN("glGetFragDataIndexEXT", getFragDataIndex);
        ASSIGN("glGetProgramResourceLocationIndexEXT", getProgramResourceLocationIndex);
    }

    if (extensions.count("GL_EXT_buffer_storage") != 0)
    {
        ASSIGN("glBufferStorageEXT", bufferStorage);
    }

    if (extensions.count("GL_EXT_clear_texture") != 0)
    {
        ASSIGN("glClearTexImageEXT", clearTexImage);
        ASSIGN("glClearTexSubImageEXT", clearTexSubImage);
    }

    if (extensions.count("GL_EXT_clip_control") != 0)
    {
        ASSIGN("glClipControlEXT", clipControl);
    }

    if (extensions.count("GL_EXT_copy_image") != 0)
    {
        ASSIGN("glCopyImageSubDataEXT", copyImageSubData);
    }

    if (extensions.count("GL_EXT_discard_framebuffer") != 0)
    {
        ASSIGN("glDiscardFramebufferEXT", discardFramebufferEXT);
    }

    if (extensions.count("GL_EXT_disjoint_timer_query") != 0)
    {
        ASSIGN("glBeginQueryEXT", beginQuery);
        ASSIGN("glDeleteQueriesEXT", deleteQueries);
        ASSIGN("glEndQueryEXT", endQuery);
        ASSIGN("glGenQueriesEXT", genQueries);
        ASSIGN("glGetInteger64vEXT", getInteger64v);
        ASSIGN("glGetQueryObjecti64vEXT", getQueryObjecti64v);
        ASSIGN("glGetQueryObjectivEXT", getQueryObjectiv);
        ASSIGN("glGetQueryObjectui64vEXT", getQueryObjectui64v);
        ASSIGN("glGetQueryObjectuivEXT", getQueryObjectuiv);
        ASSIGN("glGetQueryivEXT", getQueryiv);
        ASSIGN("glIsQueryEXT", isQuery);
        ASSIGN("glQueryCounterEXT", queryCounter);
    }

    if (extensions.count("GL_EXT_draw_buffers") != 0)
    {
        ASSIGN("glDrawBuffersEXT", drawBuffers);
    }

    if (extensions.count("GL_EXT_draw_buffers_indexed") != 0)
    {
        ASSIGN("glBlendEquationSeparateiEXT", blendEquationSeparatei);
        ASSIGN("glBlendEquationiEXT", blendEquationi);
        ASSIGN("glBlendFuncSeparateiEXT", blendFuncSeparatei);
        ASSIGN("glBlendFunciEXT", blendFunci);
        ASSIGN("glColorMaskiEXT", colorMaski);
        ASSIGN("glDisableiEXT", disablei);
        ASSIGN("glEnableiEXT", enablei);
        ASSIGN("glIsEnablediEXT", isEnabledi);
    }

    if (extensions.count("GL_EXT_draw_elements_base_vertex") != 0)
    {
        ASSIGN("glDrawElementsBaseVertexEXT", drawElementsBaseVertex);
        ASSIGN("glDrawElementsInstancedBaseVertexEXT", drawElementsInstancedBaseVertex);
        ASSIGN("glDrawRangeElementsBaseVertexEXT", drawRangeElementsBaseVertex);
        ASSIGN("glMultiDrawElementsBaseVertexEXT", multiDrawElementsBaseVertex);
    }

    if (extensions.count("GL_EXT_draw_transform_feedback") != 0)
    {
        ASSIGN("glDrawTransformFeedbackEXT", drawTransformFeedback);
        ASSIGN("glDrawTransformFeedbackInstancedEXT", drawTransformFeedbackInstanced);
    }

    if (extensions.count("GL_EXT_geometry_shader") != 0)
    {
        ASSIGN("glFramebufferTextureEXT", framebufferTexture);
    }

    if (extensions.count("GL_EXT_instanced_arrays") != 0)
    {
        ASSIGN("glVertexAttribDivisorEXT", vertexAttribDivisor);
    }

    if (extensions.count("GL_EXT_map_buffer_range") != 0)
    {
        ASSIGN("glFlushMappedBufferRangeEXT", flushMappedBufferRange);
        ASSIGN("glMapBufferRangeEXT", mapBufferRange);
    }

    if (extensions.count("GL_EXT_multi_draw_indirect") != 0)
    {
        ASSIGN("glMultiDrawArraysIndirectEXT", multiDrawArraysIndirect);
        ASSIGN("glMultiDrawElementsIndirectEXT", multiDrawElementsIndirect);
    }

    if (extensions.count("GL_EXT_multisampled_render_to_texture") != 0)
    {
        ASSIGN("glFramebufferTexture2DMultisampleEXT", framebufferTexture2DMultisampleEXT);
        ASSIGN("glRenderbufferStorageMultisampleEXT", renderbufferStorageMultisample);
        ASSIGN("glRenderbufferStorageMultisampleEXT", renderbufferStorageMultisampleEXT);
    }

    if (extensions.count("GL_EXT_multiview_draw_buffers") != 0)
    {
        ASSIGN("glGetIntegeri_vEXT", getIntegeri_v);
    }

    if (extensions.count("GL_EXT_occlusion_query_boolean") != 0)
    {
        ASSIGN("glBeginQueryEXT", beginQuery);
        ASSIGN("glDeleteQueriesEXT", deleteQueries);
        ASSIGN("glEndQueryEXT", endQuery);
        ASSIGN("glGenQueriesEXT", genQueries);
        ASSIGN("glGetQueryObjectuivEXT", getQueryObjectuiv);
        ASSIGN("glGetQueryivEXT", getQueryiv);
        ASSIGN("glIsQueryEXT", isQuery);
    }

    if (extensions.count("GL_EXT_primitive_bounding_box") != 0)
    {
        ASSIGN("glPrimitiveBoundingBoxEXT", primitiveBoundingBox);
    }

    if (extensions.count("GL_EXT_robustness") != 0)
    {
        ASSIGN("glGetGraphicsResetStatusEXT", getGraphicsResetStatus);
        ASSIGN("glGetnUniformfvEXT", getnUniformfv);
        ASSIGN("glGetnUniformivEXT", getnUniformiv);
        ASSIGN("glReadnPixelsEXT", readnPixels);
    }

    if (extensions.count("GL_EXT_separate_shader_objects") != 0)
    {
        ASSIGN("glActiveShaderProgramEXT", activeShaderProgram);
        ASSIGN("glBindProgramPipelineEXT", bindProgramPipeline);
        ASSIGN("glCreateShaderProgramvEXT", createShaderProgramv);
        ASSIGN("glDeleteProgramPipelinesEXT", deleteProgramPipelines);
        ASSIGN("glGenProgramPipelinesEXT", genProgramPipelines);
        ASSIGN("glGetProgramPipelineInfoLogEXT", getProgramPipelineInfoLog);
        ASSIGN("glGetProgramPipelineivEXT", getProgramPipelineiv);
        ASSIGN("glIsProgramPipelineEXT", isProgramPipeline);
        ASSIGN("glProgramParameteriEXT", programParameteri);
        ASSIGN("glProgramUniform1fEXT", programUniform1f);
        ASSIGN("glProgramUniform1fvEXT", programUniform1fv);
        ASSIGN("glProgramUniform1iEXT", programUniform1i);
        ASSIGN("glProgramUniform1ivEXT", programUniform1iv);
        ASSIGN("glProgramUniform1uiEXT", programUniform1ui);
        ASSIGN("glProgramUniform1uivEXT", programUniform1uiv);
        ASSIGN("glProgramUniform2fEXT", programUniform2f);
        ASSIGN("glProgramUniform2fvEXT", programUniform2fv);
        ASSIGN("glProgramUniform2iEXT", programUniform2i);
        ASSIGN("glProgramUniform2ivEXT", programUniform2iv);
        ASSIGN("glProgramUniform2uiEXT", programUniform2ui);
        ASSIGN("glProgramUniform2uivEXT", programUniform2uiv);
        ASSIGN("glProgramUniform3fEXT", programUniform3f);
        ASSIGN("glProgramUniform3fvEXT", programUniform3fv);
        ASSIGN("glProgramUniform3iEXT", programUniform3i);
        ASSIGN("glProgramUniform3ivEXT", programUniform3iv);
        ASSIGN("glProgramUniform3uiEXT", programUniform3ui);
        ASSIGN("glProgramUniform3uivEXT", programUniform3uiv);
        ASSIGN("glProgramUniform4fEXT", programUniform4f);
        ASSIGN("glProgramUniform4fvEXT", programUniform4fv);
        ASSIGN("glProgramUniform4iEXT", programUniform4i);
        ASSIGN("glProgramUniform4ivEXT", programUniform4iv);
        ASSIGN("glProgramUniform4uiEXT", programUniform4ui);
        ASSIGN("glProgramUniform4uivEXT", programUniform4uiv);
        ASSIGN("glProgramUniformMatrix2fvEXT", programUniformMatrix2fv);
        ASSIGN("glProgramUniformMatrix2x3fvEXT", programUniformMatrix2x3fv);
        ASSIGN("glProgramUniformMatrix2x4fvEXT", programUniformMatrix2x4fv);
        ASSIGN("glProgramUniformMatrix3fvEXT", programUniformMatrix3fv);
        ASSIGN("glProgramUniformMatrix3x2fvEXT", programUniformMatrix3x2fv);
        ASSIGN("glProgramUniformMatrix3x4fvEXT", programUniformMatrix3x4fv);
        ASSIGN("glProgramUniformMatrix4fvEXT", programUniformMatrix4fv);
        ASSIGN("glProgramUniformMatrix4x2fvEXT", programUniformMatrix4x2fv);
        ASSIGN("glProgramUniformMatrix4x3fvEXT", programUniformMatrix4x3fv);
        ASSIGN("glUseProgramStagesEXT", useProgramStages);
        ASSIGN("glValidateProgramPipelineEXT", validateProgramPipeline);
    }

    if (extensions.count("GL_EXT_tessellation_shader") != 0)
    {
        ASSIGN("glPatchParameteriEXT", patchParameteri);
    }

    if (extensions.count("GL_EXT_texture_border_clamp") != 0)
    {
        ASSIGN("glGetSamplerParameterIivEXT", getSamplerParameterIiv);
        ASSIGN("glGetSamplerParameterIuivEXT", getSamplerParameterIuiv);
        ASSIGN("glGetTexParameterIivEXT", getTexParameterIiv);
        ASSIGN("glGetTexParameterIuivEXT", getTexParameterIuiv);
        ASSIGN("glSamplerParameterIivEXT", samplerParameterIiv);
        ASSIGN("glSamplerParameterIuivEXT", samplerParameterIuiv);
        ASSIGN("glTexParameterIivEXT", texParameterIiv);
        ASSIGN("glTexParameterIuivEXT", texParameterIuiv);
    }

    if (extensions.count("GL_EXT_texture_buffer") != 0)
    {
        ASSIGN("glTexBufferEXT", texBuffer);
        ASSIGN("glTexBufferEXT", texBufferEXT);
        ASSIGN("glTexBufferRangeEXT", texBufferRange);
        ASSIGN("glTexBufferRangeEXT", texBufferRangeEXT);
    }

    if (extensions.count("GL_EXT_texture_view") != 0)
    {
        ASSIGN("glTextureViewEXT", textureView);
    }

    if (extensions.count("GL_IMG_multisampled_render_to_texture") != 0)
    {
        ASSIGN("glFramebufferTexture2DMultisampleIMG", framebufferTexture2DMultisampleIMG);
        ASSIGN("glRenderbufferStorageMultisampleIMG", renderbufferStorageMultisampleIMG);
    }

    if (extensions.count("GL_KHR_debug") != 0)
    {
        ASSIGN("glDebugMessageCallbackKHR", debugMessageCallback);
        ASSIGN("glDebugMessageControlKHR", debugMessageControl);
        ASSIGN("glDebugMessageInsertKHR", debugMessageInsert);
        ASSIGN("glGetDebugMessageLogKHR", getDebugMessageLog);
        ASSIGN("glGetObjectLabelKHR", getObjectLabel);
        ASSIGN("glGetObjectPtrLabelKHR", getObjectPtrLabel);
        ASSIGN("glGetPointervKHR", getPointerv);
        ASSIGN("glObjectLabelKHR", objectLabel);
        ASSIGN("glObjectPtrLabelKHR", objectPtrLabel);
        ASSIGN("glPopDebugGroupKHR", popDebugGroup);
        ASSIGN("glPushDebugGroupKHR", pushDebugGroup);
    }

    if (extensions.count("GL_KHR_robustness") != 0)
    {
        ASSIGN("glGetGraphicsResetStatusKHR", getGraphicsResetStatus);
        ASSIGN("glGetnUniformfvKHR", getnUniformfv);
        ASSIGN("glGetnUniformivKHR", getnUniformiv);
        ASSIGN("glGetnUniformuivKHR", getnUniformuiv);
        ASSIGN("glReadnPixelsKHR", readnPixels);
    }

    if (extensions.count("GL_MESA_sampler_objects") != 0)
    {
        ASSIGN("glBindSampler", bindSampler);
        ASSIGN("glDeleteSamplers", deleteSamplers);
        ASSIGN("glGenSamplers", genSamplers);
        ASSIGN("glGetSamplerParameterfv", getSamplerParameterfv);
        ASSIGN("glGetSamplerParameteriv", getSamplerParameteriv);
        ASSIGN("glIsSampler", isSampler);
        ASSIGN("glSamplerParameterf", samplerParameterf);
        ASSIGN("glSamplerParameterfv", samplerParameterfv);
        ASSIGN("glSamplerParameteri", samplerParameteri);
        ASSIGN("glSamplerParameteriv", samplerParameteriv);
    }

    if (extensions.count("GL_NV_framebuffer_blit") != 0)
    {
        ASSIGN("glBlitFramebufferNV", blitFramebufferNV);
    }

    if (extensions.count("GL_NV_polygon_mode") != 0)
    {
        ASSIGN("glPolygonModeNV", polygonModeNV);
    }

    if (extensions.count("GL_OES_EGL_image") != 0)
    {
        ASSIGN("glEGLImageTargetRenderbufferStorageOES", eGLImageTargetRenderbufferStorageOES);
        ASSIGN("glEGLImageTargetTexture2DOES", eGLImageTargetTexture2DOES);
    }

    if (extensions.count("GL_OES_EGL_image_external") != 0)
    {
        ASSIGN("glEGLImageTargetTexture2DOES", eGLImageTargetTexture2DOES);
    }

    if (extensions.count("GL_OES_copy_image") != 0)
    {
        ASSIGN("glCopyImageSubDataOES", copyImageSubData);
    }

    if (extensions.count("GL_OES_draw_buffers_indexed") != 0)
    {
        ASSIGN("glBlendEquationSeparateiOES", blendEquationSeparatei);
        ASSIGN("glBlendEquationiOES", blendEquationi);
        ASSIGN("glBlendFuncSeparateiOES", blendFuncSeparatei);
        ASSIGN("glBlendFunciOES", blendFunci);
        ASSIGN("glColorMaskiOES", colorMaski);
        ASSIGN("glDisableiOES", disablei);
        ASSIGN("glEnableiOES", enablei);
        ASSIGN("glIsEnablediOES", isEnabledi);
    }

    if (extensions.count("GL_OES_draw_elements_base_vertex") != 0)
    {
        ASSIGN("glDrawElementsBaseVertexOES", drawElementsBaseVertex);
        ASSIGN("glDrawElementsInstancedBaseVertexOES", drawElementsInstancedBaseVertex);
        ASSIGN("glDrawRangeElementsBaseVertexOES", drawRangeElementsBaseVertex);
        ASSIGN("glMultiDrawElementsBaseVertexEXT", multiDrawElementsBaseVertex);
    }

    if (extensions.count("GL_OES_geometry_shader") != 0)
    {
        ASSIGN("glFramebufferTextureOES", framebufferTexture);
    }

    if (extensions.count("GL_OES_get_program_binary") != 0)
    {
        ASSIGN("glGetProgramBinaryOES", getProgramBinary);
        ASSIGN("glProgramBinaryOES", programBinary);
    }

    if (extensions.count("GL_OES_mapbuffer") != 0)
    {
        ASSIGN("glGetBufferPointervOES", getBufferPointerv);
        ASSIGN("glMapBufferOES", mapBuffer);
        ASSIGN("glUnmapBufferOES", unmapBuffer);
    }

    if (extensions.count("GL_OES_primitive_bounding_box") != 0)
    {
        ASSIGN("glPrimitiveBoundingBoxOES", primitiveBoundingBox);
    }

    if (extensions.count("GL_OES_sample_shading") != 0)
    {
        ASSIGN("glMinSampleShadingOES", minSampleShading);
    }

    if (extensions.count("GL_OES_tessellation_shader") != 0)
    {
        ASSIGN("glPatchParameteriOES", patchParameteri);
    }

    if (extensions.count("GL_OES_texture_3D") != 0)
    {
        ASSIGN("glCompressedTexImage3DOES", compressedTexImage3D);
        ASSIGN("glCompressedTexSubImage3DOES", compressedTexSubImage3D);
        ASSIGN("glCopyTexSubImage3DOES", copyTexSubImage3D);
        ASSIGN("glFramebufferTexture3DOES", framebufferTexture3D);
        ASSIGN("glTexImage3DOES", texImage3D);
        ASSIGN("glTexSubImage3DOES", texSubImage3D);
    }

    if (extensions.count("GL_OES_texture_border_clamp") != 0)
    {
        ASSIGN("glGetSamplerParameterIivOES", getSamplerParameterIiv);
        ASSIGN("glGetSamplerParameterIuivOES", getSamplerParameterIuiv);
        ASSIGN("glGetTexParameterIivOES", getTexParameterIiv);
        ASSIGN("glGetTexParameterIuivOES", getTexParameterIuiv);
        ASSIGN("glSamplerParameterIivOES", samplerParameterIiv);
        ASSIGN("glSamplerParameterIuivOES", samplerParameterIuiv);
        ASSIGN("glTexParameterIivOES", texParameterIiv);
        ASSIGN("glTexParameterIuivOES", texParameterIuiv);
    }

    if (extensions.count("GL_OES_texture_buffer") != 0)
    {
        ASSIGN("glTexBufferOES", texBuffer);
        ASSIGN("glTexBufferOES", texBufferOES);
        ASSIGN("glTexBufferRangeOES", texBufferRange);
        ASSIGN("glTexBufferRangeOES", texBufferRangeOES);
    }

    if (extensions.count("GL_OES_texture_storage_multisample_2d_array") != 0)
    {
        ASSIGN("glTexStorage3DMultisampleOES", texStorage3DMultisample);
    }

    if (extensions.count("GL_OES_texture_view") != 0)
    {
        ASSIGN("glTextureViewOES", textureView);
    }

    if (extensions.count("GL_OES_vertex_array_object") != 0)
    {
        ASSIGN("glBindVertexArrayOES", bindVertexArray);
        ASSIGN("glDeleteVertexArraysOES", deleteVertexArrays);
        ASSIGN("glGenVertexArraysOES", genVertexArrays);
        ASSIGN("glIsVertexArrayOES", isVertexArray);
    }

    if (extensions.count("GL_OES_viewport_array") != 0)
    {
        ASSIGN("glDisableiOES", disablei);
        ASSIGN("glEnableiOES", enablei);
        ASSIGN("glGetFloati_vOES", getFloati_v);
        ASSIGN("glIsEnablediOES", isEnabledi);
        ASSIGN("glScissorArrayvOES", scissorArrayv);
        ASSIGN("glScissorIndexedOES", scissorIndexed);
        ASSIGN("glScissorIndexedvOES", scissorIndexedv);
        ASSIGN("glViewportArrayvOES", viewportArrayv);
        ASSIGN("glViewportIndexedfOES", viewportIndexedf);
        ASSIGN("glViewportIndexedfvOES", viewportIndexedfv);
    }

    if (extensions.count("GL_QCOM_tiled_rendering") != 0)
    {
        ASSIGN("glEndTilingQCOM", endTilingQCOM);
        ASSIGN("glStartTilingQCOM", startTilingQCOM);
    }

    if (version >= gl::Version(2, 0))
    {
        ASSIGN("glActiveTexture", activeTexture);
        ASSIGN("glAttachShader", attachShader);
        ASSIGN("glBindAttribLocation", bindAttribLocation);
        ASSIGN("glBindBuffer", bindBuffer);
        ASSIGN("glBindFramebuffer", bindFramebuffer);
        ASSIGN("glBindRenderbuffer", bindRenderbuffer);
        ASSIGN("glBindTexture", bindTexture);
        ASSIGN("glBlendColor", blendColor);
        ASSIGN("glBlendEquation", blendEquation);
        ASSIGN("glBlendEquationSeparate", blendEquationSeparate);
        ASSIGN("glBlendFunc", blendFunc);
        ASSIGN("glBlendFuncSeparate", blendFuncSeparate);
        ASSIGN("glBufferData", bufferData);
        ASSIGN("glBufferSubData", bufferSubData);
        ASSIGN("glCheckFramebufferStatus", checkFramebufferStatus);
        ASSIGN("glClear", clear);
        ASSIGN("glClearColor", clearColor);
        ASSIGN("glClearDepthf", clearDepthf);
        ASSIGN("glClearStencil", clearStencil);
        ASSIGN("glColorMask", colorMask);
        ASSIGN("glCompileShader", compileShader);
        ASSIGN("glCompressedTexImage2D", compressedTexImage2D);
        ASSIGN("glCompressedTexSubImage2D", compressedTexSubImage2D);
        ASSIGN("glCopyTexImage2D", copyTexImage2D);
        ASSIGN("glCopyTexSubImage2D", copyTexSubImage2D);
        ASSIGN("glCreateProgram", createProgram);
        ASSIGN("glCreateShader", createShader);
        ASSIGN("glCullFace", cullFace);
        ASSIGN("glDeleteBuffers", deleteBuffers);
        ASSIGN("glDeleteFramebuffers", deleteFramebuffers);
        ASSIGN("glDeleteProgram", deleteProgram);
        ASSIGN("glDeleteRenderbuffers", deleteRenderbuffers);
        ASSIGN("glDeleteShader", deleteShader);
        ASSIGN("glDeleteTextures", deleteTextures);
        ASSIGN("glDepthFunc", depthFunc);
        ASSIGN("glDepthMask", depthMask);
        ASSIGN("glDepthRangef", depthRangef);
        ASSIGN("glDetachShader", detachShader);
        ASSIGN("glDisable", disable);
        ASSIGN("glDisableVertexAttribArray", disableVertexAttribArray);
        ASSIGN("glDrawArrays", drawArrays);
        ASSIGN("glDrawElements", drawElements);
        ASSIGN("glEnable", enable);
        ASSIGN("glEnableVertexAttribArray", enableVertexAttribArray);
        ASSIGN("glFinish", finish);
        ASSIGN("glFlush", flush);
        ASSIGN("glFramebufferRenderbuffer", framebufferRenderbuffer);
        ASSIGN("glFramebufferTexture2D", framebufferTexture2D);
        ASSIGN("glFrontFace", frontFace);
        ASSIGN("glGenBuffers", genBuffers);
        ASSIGN("glGenFramebuffers", genFramebuffers);
        ASSIGN("glGenRenderbuffers", genRenderbuffers);
        ASSIGN("glGenTextures", genTextures);
        ASSIGN("glGenerateMipmap", generateMipmap);
        ASSIGN("glGetActiveAttrib", getActiveAttrib);
        ASSIGN("glGetActiveUniform", getActiveUniform);
        ASSIGN("glGetAttachedShaders", getAttachedShaders);
        ASSIGN("glGetAttribLocation", getAttribLocation);
        ASSIGN("glGetBooleanv", getBooleanv);
        ASSIGN("glGetBufferParameteriv", getBufferParameteriv);
        ASSIGN("glGetError", getError);
        ASSIGN("glGetFloatv", getFloatv);
        ASSIGN("glGetFramebufferAttachmentParameteriv", getFramebufferAttachmentParameteriv);
        ASSIGN("glGetIntegerv", getIntegerv);
        ASSIGN("glGetProgramInfoLog", getProgramInfoLog);
        ASSIGN("glGetProgramiv", getProgramiv);
        ASSIGN("glGetRenderbufferParameteriv", getRenderbufferParameteriv);
        ASSIGN("glGetShaderInfoLog", getShaderInfoLog);
        ASSIGN("glGetShaderPrecisionFormat", getShaderPrecisionFormat);
        ASSIGN("glGetShaderSource", getShaderSource);
        ASSIGN("glGetShaderiv", getShaderiv);
        ASSIGN("glGetString", getString);
        ASSIGN("glGetTexParameterfv", getTexParameterfv);
        ASSIGN("glGetTexParameteriv", getTexParameteriv);
        ASSIGN("glGetUniformLocation", getUniformLocation);
        ASSIGN("glGetUniformfv", getUniformfv);
        ASSIGN("glGetUniformiv", getUniformiv);
        ASSIGN("glGetVertexAttribPointerv", getVertexAttribPointerv);
        ASSIGN("glGetVertexAttribfv", getVertexAttribfv);
        ASSIGN("glGetVertexAttribiv", getVertexAttribiv);
        ASSIGN("glHint", hint);
        ASSIGN("glIsBuffer", isBuffer);
        ASSIGN("glIsEnabled", isEnabled);
        ASSIGN("glIsFramebuffer", isFramebuffer);
        ASSIGN("glIsProgram", isProgram);
        ASSIGN("glIsRenderbuffer", isRenderbuffer);
        ASSIGN("glIsShader", isShader);
        ASSIGN("glIsTexture", isTexture);
        ASSIGN("glLineWidth", lineWidth);
        ASSIGN("glLinkProgram", linkProgram);
        ASSIGN("glPixelStorei", pixelStorei);
        ASSIGN("glPolygonOffset", polygonOffset);
        ASSIGN("glReadPixels", readPixels);
        ASSIGN("glReleaseShaderCompiler", releaseShaderCompiler);
        ASSIGN("glRenderbufferStorage", renderbufferStorage);
        ASSIGN("glSampleCoverage", sampleCoverage);
        ASSIGN("glScissor", scissor);
        ASSIGN("glShaderBinary", shaderBinary);
        ASSIGN("glShaderSource", shaderSource);
        ASSIGN("glStencilFunc", stencilFunc);
        ASSIGN("glStencilFuncSeparate", stencilFuncSeparate);
        ASSIGN("glStencilMask", stencilMask);
        ASSIGN("glStencilMaskSeparate", stencilMaskSeparate);
        ASSIGN("glStencilOp", stencilOp);
        ASSIGN("glStencilOpSeparate", stencilOpSeparate);
        ASSIGN("glTexImage2D", texImage2D);
        ASSIGN("glTexParameterf", texParameterf);
        ASSIGN("glTexParameterfv", texParameterfv);
        ASSIGN("glTexParameteri", texParameteri);
        ASSIGN("glTexParameteriv", texParameteriv);
        ASSIGN("glTexSubImage2D", texSubImage2D);
        ASSIGN("glUniform1f", uniform1f);
        ASSIGN("glUniform1fv", uniform1fv);
        ASSIGN("glUniform1i", uniform1i);
        ASSIGN("glUniform1iv", uniform1iv);
        ASSIGN("glUniform2f", uniform2f);
        ASSIGN("glUniform2fv", uniform2fv);
        ASSIGN("glUniform2i", uniform2i);
        ASSIGN("glUniform2iv", uniform2iv);
        ASSIGN("glUniform3f", uniform3f);
        ASSIGN("glUniform3fv", uniform3fv);
        ASSIGN("glUniform3i", uniform3i);
        ASSIGN("glUniform3iv", uniform3iv);
        ASSIGN("glUniform4f", uniform4f);
        ASSIGN("glUniform4fv", uniform4fv);
        ASSIGN("glUniform4i", uniform4i);
        ASSIGN("glUniform4iv", uniform4iv);
        ASSIGN("glUniformMatrix2fv", uniformMatrix2fv);
        ASSIGN("glUniformMatrix3fv", uniformMatrix3fv);
        ASSIGN("glUniformMatrix4fv", uniformMatrix4fv);
        ASSIGN("glUseProgram", useProgram);
        ASSIGN("glValidateProgram", validateProgram);
        ASSIGN("glVertexAttrib1f", vertexAttrib1f);
        ASSIGN("glVertexAttrib1fv", vertexAttrib1fv);
        ASSIGN("glVertexAttrib2f", vertexAttrib2f);
        ASSIGN("glVertexAttrib2fv", vertexAttrib2fv);
        ASSIGN("glVertexAttrib3f", vertexAttrib3f);
        ASSIGN("glVertexAttrib3fv", vertexAttrib3fv);
        ASSIGN("glVertexAttrib4f", vertexAttrib4f);
        ASSIGN("glVertexAttrib4fv", vertexAttrib4fv);
        ASSIGN("glVertexAttribPointer", vertexAttribPointer);
        ASSIGN("glViewport", viewport);
    }

    if (version >= gl::Version(3, 0))
    {
        ASSIGN("glBeginQuery", beginQuery);
        ASSIGN("glBeginTransformFeedback", beginTransformFeedback);
        ASSIGN("glBindBufferBase", bindBufferBase);
        ASSIGN("glBindBufferRange", bindBufferRange);
        ASSIGN("glBindSampler", bindSampler);
        ASSIGN("glBindTransformFeedback", bindTransformFeedback);
        ASSIGN("glBindVertexArray", bindVertexArray);
        ASSIGN("glBlitFramebuffer", blitFramebuffer);
        ASSIGN("glClearBufferfi", clearBufferfi);
        ASSIGN("glClearBufferfv", clearBufferfv);
        ASSIGN("glClearBufferiv", clearBufferiv);
        ASSIGN("glClearBufferuiv", clearBufferuiv);
        ASSIGN("glClientWaitSync", clientWaitSync);
        ASSIGN("glCompressedTexImage3D", compressedTexImage3D);
        ASSIGN("glCompressedTexSubImage3D", compressedTexSubImage3D);
        ASSIGN("glCopyBufferSubData", copyBufferSubData);
        ASSIGN("glCopyTexSubImage3D", copyTexSubImage3D);
        ASSIGN("glDeleteQueries", deleteQueries);
        ASSIGN("glDeleteSamplers", deleteSamplers);
        ASSIGN("glDeleteSync", deleteSync);
        ASSIGN("glDeleteTransformFeedbacks", deleteTransformFeedbacks);
        ASSIGN("glDeleteVertexArrays", deleteVertexArrays);
        ASSIGN("glDrawArraysInstanced", drawArraysInstanced);
        ASSIGN("glDrawBuffers", drawBuffers);
        ASSIGN("glDrawElementsInstanced", drawElementsInstanced);
        ASSIGN("glDrawRangeElements", drawRangeElements);
        ASSIGN("glEndQuery", endQuery);
        ASSIGN("glEndTransformFeedback", endTransformFeedback);
        ASSIGN("glFenceSync", fenceSync);
        ASSIGN("glFlushMappedBufferRange", flushMappedBufferRange);
        ASSIGN("glFramebufferTextureLayer", framebufferTextureLayer);
        ASSIGN("glGenQueries", genQueries);
        ASSIGN("glGenSamplers", genSamplers);
        ASSIGN("glGenTransformFeedbacks", genTransformFeedbacks);
        ASSIGN("glGenVertexArrays", genVertexArrays);
        ASSIGN("glGetActiveUniformBlockName", getActiveUniformBlockName);
        ASSIGN("glGetActiveUniformBlockiv", getActiveUniformBlockiv);
        ASSIGN("glGetActiveUniformsiv", getActiveUniformsiv);
        ASSIGN("glGetBufferParameteri64v", getBufferParameteri64v);
        ASSIGN("glGetBufferPointerv", getBufferPointerv);
        ASSIGN("glGetFragDataLocation", getFragDataLocation);
        ASSIGN("glGetInteger64i_v", getInteger64i_v);
        ASSIGN("glGetInteger64v", getInteger64v);
        ASSIGN("glGetIntegeri_v", getIntegeri_v);
        ASSIGN("glGetInternalformativ", getInternalformativ);
        ASSIGN("glGetProgramBinary", getProgramBinary);
        ASSIGN("glGetQueryObjectuiv", getQueryObjectuiv);
        ASSIGN("glGetQueryiv", getQueryiv);
        ASSIGN("glGetSamplerParameterfv", getSamplerParameterfv);
        ASSIGN("glGetSamplerParameteriv", getSamplerParameteriv);
        ASSIGN("glGetStringi", getStringi);
        ASSIGN("glGetSynciv", getSynciv);
        ASSIGN("glGetTransformFeedbackVarying", getTransformFeedbackVarying);
        ASSIGN("glGetUniformBlockIndex", getUniformBlockIndex);
        ASSIGN("glGetUniformIndices", getUniformIndices);
        ASSIGN("glGetUniformuiv", getUniformuiv);
        ASSIGN("glGetVertexAttribIiv", getVertexAttribIiv);
        ASSIGN("glGetVertexAttribIuiv", getVertexAttribIuiv);
        ASSIGN("glInvalidateFramebuffer", invalidateFramebuffer);
        ASSIGN("glInvalidateSubFramebuffer", invalidateSubFramebuffer);
        ASSIGN("glIsQuery", isQuery);
        ASSIGN("glIsSampler", isSampler);
        ASSIGN("glIsSync", isSync);
        ASSIGN("glIsTransformFeedback", isTransformFeedback);
        ASSIGN("glIsVertexArray", isVertexArray);
        ASSIGN("glMapBufferRange", mapBufferRange);
        ASSIGN("glPauseTransformFeedback", pauseTransformFeedback);
        ASSIGN("glProgramBinary", programBinary);
        ASSIGN("glProgramParameteri", programParameteri);
        ASSIGN("glReadBuffer", readBuffer);
        ASSIGN("glRenderbufferStorageMultisample", renderbufferStorageMultisample);
        ASSIGN("glResumeTransformFeedback", resumeTransformFeedback);
        ASSIGN("glSamplerParameterf", samplerParameterf);
        ASSIGN("glSamplerParameterfv", samplerParameterfv);
        ASSIGN("glSamplerParameteri", samplerParameteri);
        ASSIGN("glSamplerParameteriv", samplerParameteriv);
        ASSIGN("glTexImage3D", texImage3D);
        ASSIGN("glTexStorage2D", texStorage2D);
        ASSIGN("glTexStorage3D", texStorage3D);
        ASSIGN("glTexSubImage3D", texSubImage3D);
        ASSIGN("glTransformFeedbackVaryings", transformFeedbackVaryings);
        ASSIGN("glUniform1ui", uniform1ui);
        ASSIGN("glUniform1uiv", uniform1uiv);
        ASSIGN("glUniform2ui", uniform2ui);
        ASSIGN("glUniform2uiv", uniform2uiv);
        ASSIGN("glUniform3ui", uniform3ui);
        ASSIGN("glUniform3uiv", uniform3uiv);
        ASSIGN("glUniform4ui", uniform4ui);
        ASSIGN("glUniform4uiv", uniform4uiv);
        ASSIGN("glUniformBlockBinding", uniformBlockBinding);
        ASSIGN("glUniformMatrix2x3fv", uniformMatrix2x3fv);
        ASSIGN("glUniformMatrix2x4fv", uniformMatrix2x4fv);
        ASSIGN("glUniformMatrix3x2fv", uniformMatrix3x2fv);
        ASSIGN("glUniformMatrix3x4fv", uniformMatrix3x4fv);
        ASSIGN("glUniformMatrix4x2fv", uniformMatrix4x2fv);
        ASSIGN("glUniformMatrix4x3fv", uniformMatrix4x3fv);
        ASSIGN("glUnmapBuffer", unmapBuffer);
        ASSIGN("glVertexAttribDivisor", vertexAttribDivisor);
        ASSIGN("glVertexAttribI4i", vertexAttribI4i);
        ASSIGN("glVertexAttribI4iv", vertexAttribI4iv);
        ASSIGN("glVertexAttribI4ui", vertexAttribI4ui);
        ASSIGN("glVertexAttribI4uiv", vertexAttribI4uiv);
        ASSIGN("glVertexAttribIPointer", vertexAttribIPointer);
        ASSIGN("glWaitSync", waitSync);
    }

    if (version >= gl::Version(3, 1))
    {
        ASSIGN("glActiveShaderProgram", activeShaderProgram);
        ASSIGN("glBindImageTexture", bindImageTexture);
        ASSIGN("glBindProgramPipeline", bindProgramPipeline);
        ASSIGN("glBindVertexBuffer", bindVertexBuffer);
        ASSIGN("glCreateShaderProgramv", createShaderProgramv);
        ASSIGN("glDeleteProgramPipelines", deleteProgramPipelines);
        ASSIGN("glDispatchCompute", dispatchCompute);
        ASSIGN("glDispatchComputeIndirect", dispatchComputeIndirect);
        ASSIGN("glDrawArraysIndirect", drawArraysIndirect);
        ASSIGN("glDrawElementsIndirect", drawElementsIndirect);
        ASSIGN("glFramebufferParameteri", framebufferParameteri);
        ASSIGN("glGenProgramPipelines", genProgramPipelines);
        ASSIGN("glGetBooleani_v", getBooleani_v);
        ASSIGN("glGetFramebufferParameteriv", getFramebufferParameteriv);
        ASSIGN("glGetMultisamplefv", getMultisamplefv);
        ASSIGN("glGetProgramInterfaceiv", getProgramInterfaceiv);
        ASSIGN("glGetProgramPipelineInfoLog", getProgramPipelineInfoLog);
        ASSIGN("glGetProgramPipelineiv", getProgramPipelineiv);
        ASSIGN("glGetProgramResourceIndex", getProgramResourceIndex);
        ASSIGN("glGetProgramResourceLocation", getProgramResourceLocation);
        ASSIGN("glGetProgramResourceName", getProgramResourceName);
        ASSIGN("glGetProgramResourceiv", getProgramResourceiv);
        ASSIGN("glGetTexLevelParameterfv", getTexLevelParameterfv);
        ASSIGN("glGetTexLevelParameteriv", getTexLevelParameteriv);
        ASSIGN("glIsProgramPipeline", isProgramPipeline);
        ASSIGN("glMemoryBarrier", memoryBarrier);
        ASSIGN("glMemoryBarrierByRegion", memoryBarrierByRegion);
        ASSIGN("glProgramUniform1f", programUniform1f);
        ASSIGN("glProgramUniform1fv", programUniform1fv);
        ASSIGN("glProgramUniform1i", programUniform1i);
        ASSIGN("glProgramUniform1iv", programUniform1iv);
        ASSIGN("glProgramUniform1ui", programUniform1ui);
        ASSIGN("glProgramUniform1uiv", programUniform1uiv);
        ASSIGN("glProgramUniform2f", programUniform2f);
        ASSIGN("glProgramUniform2fv", programUniform2fv);
        ASSIGN("glProgramUniform2i", programUniform2i);
        ASSIGN("glProgramUniform2iv", programUniform2iv);
        ASSIGN("glProgramUniform2ui", programUniform2ui);
        ASSIGN("glProgramUniform2uiv", programUniform2uiv);
        ASSIGN("glProgramUniform3f", programUniform3f);
        ASSIGN("glProgramUniform3fv", programUniform3fv);
        ASSIGN("glProgramUniform3i", programUniform3i);
        ASSIGN("glProgramUniform3iv", programUniform3iv);
        ASSIGN("glProgramUniform3ui", programUniform3ui);
        ASSIGN("glProgramUniform3uiv", programUniform3uiv);
        ASSIGN("glProgramUniform4f", programUniform4f);
        ASSIGN("glProgramUniform4fv", programUniform4fv);
        ASSIGN("glProgramUniform4i", programUniform4i);
        ASSIGN("glProgramUniform4iv", programUniform4iv);
        ASSIGN("glProgramUniform4ui", programUniform4ui);
        ASSIGN("glProgramUniform4uiv", programUniform4uiv);
        ASSIGN("glProgramUniformMatrix2fv", programUniformMatrix2fv);
        ASSIGN("glProgramUniformMatrix2x3fv", programUniformMatrix2x3fv);
        ASSIGN("glProgramUniformMatrix2x4fv", programUniformMatrix2x4fv);
        ASSIGN("glProgramUniformMatrix3fv", programUniformMatrix3fv);
        ASSIGN("glProgramUniformMatrix3x2fv", programUniformMatrix3x2fv);
        ASSIGN("glProgramUniformMatrix3x4fv", programUniformMatrix3x4fv);
        ASSIGN("glProgramUniformMatrix4fv", programUniformMatrix4fv);
        ASSIGN("glProgramUniformMatrix4x2fv", programUniformMatrix4x2fv);
        ASSIGN("glProgramUniformMatrix4x3fv", programUniformMatrix4x3fv);
        ASSIGN("glSampleMaski", sampleMaski);
        ASSIGN("glTexStorage2DMultisample", texStorage2DMultisample);
        ASSIGN("glUseProgramStages", useProgramStages);
        ASSIGN("glValidateProgramPipeline", validateProgramPipeline);
        ASSIGN("glVertexAttribBinding", vertexAttribBinding);
        ASSIGN("glVertexAttribFormat", vertexAttribFormat);
        ASSIGN("glVertexAttribIFormat", vertexAttribIFormat);
        ASSIGN("glVertexBindingDivisor", vertexBindingDivisor);
    }

    if (version >= gl::Version(3, 2))
    {
        ASSIGN("glBlendBarrier", blendBarrier);
        ASSIGN("glBlendEquationSeparatei", blendEquationSeparatei);
        ASSIGN("glBlendEquationi", blendEquationi);
        ASSIGN("glBlendFuncSeparatei", blendFuncSeparatei);
        ASSIGN("glBlendFunci", blendFunci);
        ASSIGN("glColorMaski", colorMaski);
        ASSIGN("glCopyImageSubData", copyImageSubData);
        ASSIGN("glDebugMessageCallback", debugMessageCallback);
        ASSIGN("glDebugMessageControl", debugMessageControl);
        ASSIGN("glDebugMessageInsert", debugMessageInsert);
        ASSIGN("glDisablei", disablei);
        ASSIGN("glDrawElementsBaseVertex", drawElementsBaseVertex);
        ASSIGN("glDrawElementsInstancedBaseVertex", drawElementsInstancedBaseVertex);
        ASSIGN("glDrawRangeElementsBaseVertex", drawRangeElementsBaseVertex);
        ASSIGN("glEnablei", enablei);
        ASSIGN("glFramebufferTexture", framebufferTexture);
        ASSIGN("glGetDebugMessageLog", getDebugMessageLog);
        ASSIGN("glGetGraphicsResetStatus", getGraphicsResetStatus);
        ASSIGN("glGetObjectLabel", getObjectLabel);
        ASSIGN("glGetObjectPtrLabel", getObjectPtrLabel);
        ASSIGN("glGetPointerv", getPointerv);
        ASSIGN("glGetSamplerParameterIiv", getSamplerParameterIiv);
        ASSIGN("glGetSamplerParameterIuiv", getSamplerParameterIuiv);
        ASSIGN("glGetTexParameterIiv", getTexParameterIiv);
        ASSIGN("glGetTexParameterIuiv", getTexParameterIuiv);
        ASSIGN("glGetnUniformfv", getnUniformfv);
        ASSIGN("glGetnUniformiv", getnUniformiv);
        ASSIGN("glGetnUniformuiv", getnUniformuiv);
        ASSIGN("glIsEnabledi", isEnabledi);
        ASSIGN("glMinSampleShading", minSampleShading);
        ASSIGN("glObjectLabel", objectLabel);
        ASSIGN("glObjectPtrLabel", objectPtrLabel);
        ASSIGN("glPatchParameteri", patchParameteri);
        ASSIGN("glPopDebugGroup", popDebugGroup);
        ASSIGN("glPrimitiveBoundingBox", primitiveBoundingBox);
        ASSIGN("glPushDebugGroup", pushDebugGroup);
        ASSIGN("glReadnPixels", readnPixels);
        ASSIGN("glSamplerParameterIiv", samplerParameterIiv);
        ASSIGN("glSamplerParameterIuiv", samplerParameterIuiv);
        ASSIGN("glTexBuffer", texBuffer);
        ASSIGN("glTexBufferRange", texBufferRange);
        ASSIGN("glTexParameterIiv", texParameterIiv);
        ASSIGN("glTexParameterIuiv", texParameterIuiv);
        ASSIGN("glTexStorage3DMultisample", texStorage3DMultisample);
    }
}

void DispatchTableGL::initProcsSharedExtensions(const std::set<std::string> &extensions)
{
    if (extensions.count("GL_EXT_debug_label") != 0)
    {
        ASSIGN("glGetObjectLabelEXT", getObjectLabel);
    }

    if (extensions.count("GL_EXT_debug_marker") != 0)
    {
        ASSIGN("glInsertEventMarkerEXT", insertEventMarkerEXT);
        ASSIGN("glPopGroupMarkerEXT", popGroupMarkerEXT);
        ASSIGN("glPushGroupMarkerEXT", pushGroupMarkerEXT);
    }

    if (extensions.count("GL_EXT_draw_instanced") != 0)
    {
        ASSIGN("glDrawArraysInstancedEXT", drawArraysInstanced);
        ASSIGN("glDrawElementsInstancedEXT", drawElementsInstanced);
    }

    if (extensions.count("GL_EXT_memory_object") != 0)
    {
        ASSIGN("glBufferStorageMemEXT", bufferStorageMemEXT);
        ASSIGN("glCreateMemoryObjectsEXT", createMemoryObjectsEXT);
        ASSIGN("glDeleteMemoryObjectsEXT", deleteMemoryObjectsEXT);
        ASSIGN("glGetMemoryObjectParameterivEXT", getMemoryObjectParameterivEXT);
        ASSIGN("glGetUnsignedBytei_vEXT", getUnsignedBytei_vEXT);
        ASSIGN("glGetUnsignedBytevEXT", getUnsignedBytevEXT);
        ASSIGN("glIsMemoryObjectEXT", isMemoryObjectEXT);
        ASSIGN("glMemoryObjectParameterivEXT", memoryObjectParameterivEXT);
        ASSIGN("glNamedBufferStorageMemEXT", namedBufferStorageMemEXT);
        ASSIGN("glTexStorageMem2DEXT", texStorageMem2DEXT);
        ASSIGN("glTexStorageMem2DMultisampleEXT", texStorageMem2DMultisampleEXT);
        ASSIGN("glTexStorageMem3DEXT", texStorageMem3DEXT);
        ASSIGN("glTexStorageMem3DMultisampleEXT", texStorageMem3DMultisampleEXT);
        ASSIGN("glTextureStorageMem2DEXT", textureStorageMem2DEXT);
        ASSIGN("glTextureStorageMem2DMultisampleEXT", textureStorageMem2DMultisampleEXT);
        ASSIGN("glTextureStorageMem3DEXT", textureStorageMem3DEXT);
        ASSIGN("glTextureStorageMem3DMultisampleEXT", textureStorageMem3DMultisampleEXT);
    }

    if (extensions.count("GL_EXT_memory_object_fd") != 0)
    {
        ASSIGN("glImportMemoryFdEXT", importMemoryFdEXT);
    }

    if (extensions.count("GL_EXT_memory_object_win32") != 0)
    {
        ASSIGN("glImportMemoryWin32HandleEXT", importMemoryWin32HandleEXT);
        ASSIGN("glImportMemoryWin32NameEXT", importMemoryWin32NameEXT);
    }

    if (extensions.count("GL_EXT_multi_draw_arrays") != 0)
    {
        ASSIGN("glMultiDrawArraysEXT", multiDrawArrays);
        ASSIGN("glMultiDrawElementsEXT", multiDrawElements);
    }

    if (extensions.count("GL_EXT_polygon_offset_clamp") != 0)
    {
        ASSIGN("glPolygonOffsetClampEXT", polygonOffsetClampEXT);
    }

    if (extensions.count("GL_EXT_semaphore") != 0)
    {
        ASSIGN("glDeleteSemaphoresEXT", deleteSemaphoresEXT);
        ASSIGN("glGenSemaphoresEXT", genSemaphoresEXT);
        ASSIGN("glGetSemaphoreParameterui64vEXT", getSemaphoreParameterui64vEXT);
        ASSIGN("glGetUnsignedBytei_vEXT", getUnsignedBytei_vEXT);
        ASSIGN("glGetUnsignedBytevEXT", getUnsignedBytevEXT);
        ASSIGN("glIsSemaphoreEXT", isSemaphoreEXT);
        ASSIGN("glSemaphoreParameterui64vEXT", semaphoreParameterui64vEXT);
        ASSIGN("glSignalSemaphoreEXT", signalSemaphoreEXT);
        ASSIGN("glWaitSemaphoreEXT", waitSemaphoreEXT);
    }

    if (extensions.count("GL_EXT_semaphore_fd") != 0)
    {
        ASSIGN("glImportSemaphoreFdEXT", importSemaphoreFdEXT);
    }

    if (extensions.count("GL_EXT_semaphore_win32") != 0)
    {
        ASSIGN("glImportSemaphoreWin32HandleEXT", importSemaphoreWin32HandleEXT);
        ASSIGN("glImportSemaphoreWin32NameEXT", importSemaphoreWin32NameEXT);
    }

    if (extensions.count("GL_EXT_shader_framebuffer_fetch_non_coherent") != 0)
    {
        ASSIGN("glFramebufferFetchBarrierEXT", framebufferFetchBarrierEXT);
    }

    if (extensions.count("GL_EXT_texture_storage") != 0)
    {
        ASSIGN("glTexStorage1DEXT", texStorage1D);
        ASSIGN("glTexStorage2DEXT", texStorage2D);
        ASSIGN("glTexStorage3DEXT", texStorage3D);
        ASSIGN("glTextureStorage1DEXT", textureStorage1D);
        ASSIGN("glTextureStorage2DEXT", textureStorage2D);
        ASSIGN("glTextureStorage3DEXT", textureStorage3D);
    }

    if (extensions.count("GL_KHR_blend_equation_advanced") != 0)
    {
        ASSIGN("glBlendBarrierKHR", blendBarrier);
    }

    if (extensions.count("GL_KHR_parallel_shader_compile") != 0)
    {
        ASSIGN("glMaxShaderCompilerThreadsKHR", maxShaderCompilerThreadsKHR);
    }

    if (extensions.count("GL_MESA_framebuffer_flip_y") != 0)
    {
        ASSIGN("glFramebufferParameteriMESA", framebufferParameteriMESA);
    }

    if (extensions.count("GL_NV_fence") != 0)
    {
        ASSIGN("glDeleteFencesNV", deleteFencesNV);
        ASSIGN("glFinishFenceNV", finishFenceNV);
        ASSIGN("glGenFencesNV", genFencesNV);
        ASSIGN("glGetFenceivNV", getFenceivNV);
        ASSIGN("glIsFenceNV", isFenceNV);
        ASSIGN("glSetFenceNV", setFenceNV);
        ASSIGN("glTestFenceNV", testFenceNV);
    }

    if (extensions.count("GL_NV_internalformat_sample_query") != 0)
    {
        ASSIGN("glGetInternalformatSampleivNV", getInternalformatSampleivNV);
    }

    if (extensions.count("GL_OVR_multiview") != 0)
    {
        ASSIGN("glFramebufferTextureMultiviewOVR", framebufferTextureMultiviewOVR);
        ASSIGN("glNamedFramebufferTextureMultiviewOVR", namedFramebufferTextureMultiviewOVR);
    }
}

}  // namespace rx
