// 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"

#if defined(ANGLE_ENABLE_OPENGL_NULL)
#    include "libANGLE/renderer/gl/null_functions.h"
#endif  // defined(ANGLE_ENABLE_OPENGL_NULL)

#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_OPENGL_DESKTOP)
    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_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_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("glProgramUniform2dEXT", programUniform2d);
        ASSIGN("glProgramUniform2dvEXT", programUniform2dv);
        ASSIGN("glProgramUniform3dEXT", programUniform3d);
        ASSIGN("glProgramUniform3dvEXT", programUniform3dv);
        ASSIGN("glProgramUniform4dEXT", programUniform4d);
        ASSIGN("glProgramUniform4dvEXT", programUniform4dv);
        ASSIGN("glProgramUniformMatrix2dvEXT", programUniformMatrix2dv);
        ASSIGN("glProgramUniformMatrix2x3dvEXT", programUniformMatrix2x3dv);
        ASSIGN("glProgramUniformMatrix2x4dvEXT", programUniformMatrix2x4dv);
        ASSIGN("glProgramUniformMatrix3dvEXT", programUniformMatrix3dv);
        ASSIGN("glProgramUniformMatrix3x2dvEXT", programUniformMatrix3x2dv);
        ASSIGN("glProgramUniformMatrix3x4dvEXT", programUniformMatrix3x4dv);
        ASSIGN("glProgramUniformMatrix4dvEXT", programUniformMatrix4dv);
        ASSIGN("glProgramUniformMatrix4x2dvEXT", programUniformMatrix4x2dv);
        ASSIGN("glProgramUniformMatrix4x3dvEXT", programUniformMatrix4x3dv);
        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("glTextureStorage1DEXT", textureStorage1D);
        ASSIGN("glTextureStorage2DEXT", textureStorage2D);
        ASSIGN("glTextureStorage2DMultisampleEXT", textureStorage2DMultisample);
        ASSIGN("glTextureStorage3DEXT", textureStorage3D);
        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_gpu_shader4") != 0)
    {
        ASSIGN("glBindFragDataLocationEXT", bindFragDataLocation);
        ASSIGN("glGetFragDataLocationEXT", getFragDataLocation);
        ASSIGN("glGetUniformuivEXT", getUniformuiv);
        ASSIGN("glUniform1uiEXT", uniform1ui);
        ASSIGN("glUniform1uivEXT", uniform1uiv);
        ASSIGN("glUniform2uiEXT", uniform2ui);
        ASSIGN("glUniform2uivEXT", uniform2uiv);
        ASSIGN("glUniform3uiEXT", uniform3ui);
        ASSIGN("glUniform3uivEXT", uniform3uiv);
        ASSIGN("glUniform4uiEXT", uniform4ui);
        ASSIGN("glUniform4uivEXT", uniform4uiv);
    }

    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_OPENGL_DESKTOP)
}

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_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_storage") != 0)
    {
        ASSIGN("glTexStorage1DEXT", texStorage1D);
        ASSIGN("glTexStorage2DEXT", texStorage2D);
        ASSIGN("glTexStorage3DEXT", texStorage3D);
        ASSIGN("glTextureStorage1DEXT", textureStorage1D);
        ASSIGN("glTextureStorage2DEXT", textureStorage2D);
        ASSIGN("glTextureStorage3DEXT", textureStorage3D);
    }

    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_NV_framebuffer_blit") != 0)
    {
        ASSIGN("glBlitFramebufferNV", blitFramebufferNV);
    }

    if (extensions.count("GL_OES_EGL_image") != 0)
    {
        ASSIGN("glEGLImageTargetRenderbufferStorageOES", eGLImageTargetRenderbufferStorageOES);
        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 (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_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_EXT_blend_minmax") != 0)
    {
        ASSIGN("glBlendEquationEXT", blendEquation);
    }

    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_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_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_KHR_parallel_shader_compile") != 0)
    {
        ASSIGN("glMaxShaderCompilerThreadsKHR", maxShaderCompilerThreadsKHR);
    }

    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_framebuffer_mixed_samples") != 0)
    {
        ASSIGN("glCoverageModulationNV", coverageModulationNV);
    }

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

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

#if defined(ANGLE_ENABLE_OPENGL_NULL)
void DispatchTableGL::initProcsDesktopGLNULL(const gl::Version &version,
                                             const std::set<std::string> &extensions)
{
#    if defined(ANGLE_ENABLE_OPENGL_DESKTOP)
    if (extensions.count("GL_ARB_ES2_compatibility") != 0)
    {
        clearDepthf              = &glClearDepthfNULL;
        depthRangef              = &glDepthRangefNULL;
        getShaderPrecisionFormat = &glGetShaderPrecisionFormatNULL;
        releaseShaderCompiler    = &glReleaseShaderCompilerNULL;
        shaderBinary             = &glShaderBinaryNULL;
    }

    if (extensions.count("GL_ARB_ES3_1_compatibility") != 0)
    {
        memoryBarrierByRegion = &glMemoryBarrierByRegionNULL;
    }

    if (extensions.count("GL_ARB_ES3_2_compatibility") != 0)
    {
        primitiveBoundingBox = &glPrimitiveBoundingBoxNULL;
    }

    if (extensions.count("GL_ARB_base_instance") != 0)
    {
        drawArraysInstancedBaseInstance   = &glDrawArraysInstancedBaseInstanceNULL;
        drawElementsInstancedBaseInstance = &glDrawElementsInstancedBaseInstanceNULL;
        drawElementsInstancedBaseVertexBaseInstance =
            &glDrawElementsInstancedBaseVertexBaseInstanceNULL;
    }

    if (extensions.count("GL_ARB_blend_func_extended") != 0)
    {
        bindFragDataLocationIndexed = &glBindFragDataLocationIndexedNULL;
        getFragDataIndex            = &glGetFragDataIndexNULL;
    }

    if (extensions.count("GL_ARB_buffer_storage") != 0)
    {
        bufferStorage = &glBufferStorageNULL;
    }

    if (extensions.count("GL_ARB_clear_buffer_object") != 0)
    {
        clearBufferData    = &glClearBufferDataNULL;
        clearBufferSubData = &glClearBufferSubDataNULL;
    }

    if (extensions.count("GL_ARB_clear_texture") != 0)
    {
        clearTexImage    = &glClearTexImageNULL;
        clearTexSubImage = &glClearTexSubImageNULL;
    }

    if (extensions.count("GL_ARB_clip_control") != 0)
    {
        clipControl = &glClipControlNULL;
    }

    if (extensions.count("GL_ARB_color_buffer_float") != 0)
    {
        clampColor = &glClampColorNULL;
    }

    if (extensions.count("GL_ARB_compute_shader") != 0)
    {
        dispatchCompute         = &glDispatchComputeNULL;
        dispatchComputeIndirect = &glDispatchComputeIndirectNULL;
    }

    if (extensions.count("GL_ARB_copy_buffer") != 0)
    {
        copyBufferSubData = &glCopyBufferSubDataNULL;
    }

    if (extensions.count("GL_ARB_copy_image") != 0)
    {
        copyImageSubData = &glCopyImageSubDataNULL;
    }

    if (extensions.count("GL_ARB_debug_output") != 0)
    {
        debugMessageCallback = &glDebugMessageCallbackNULL;
        debugMessageControl  = &glDebugMessageControlNULL;
        debugMessageInsert   = &glDebugMessageInsertNULL;
        getDebugMessageLog   = &glGetDebugMessageLogNULL;
    }

    if (extensions.count("GL_ARB_direct_state_access") != 0)
    {
        bindTextureUnit                          = &glBindTextureUnitNULL;
        blitNamedFramebuffer                     = &glBlitNamedFramebufferNULL;
        checkNamedFramebufferStatus              = &glCheckNamedFramebufferStatusNULL;
        clearNamedBufferData                     = &glClearNamedBufferDataNULL;
        clearNamedBufferSubData                  = &glClearNamedBufferSubDataNULL;
        clearNamedFramebufferfi                  = &glClearNamedFramebufferfiNULL;
        clearNamedFramebufferfv                  = &glClearNamedFramebufferfvNULL;
        clearNamedFramebufferiv                  = &glClearNamedFramebufferivNULL;
        clearNamedFramebufferuiv                 = &glClearNamedFramebufferuivNULL;
        compressedTextureSubImage1D              = &glCompressedTextureSubImage1DNULL;
        compressedTextureSubImage2D              = &glCompressedTextureSubImage2DNULL;
        compressedTextureSubImage3D              = &glCompressedTextureSubImage3DNULL;
        copyNamedBufferSubData                   = &glCopyNamedBufferSubDataNULL;
        copyTextureSubImage1D                    = &glCopyTextureSubImage1DNULL;
        copyTextureSubImage2D                    = &glCopyTextureSubImage2DNULL;
        copyTextureSubImage3D                    = &glCopyTextureSubImage3DNULL;
        createBuffers                            = &glCreateBuffersNULL;
        createFramebuffers                       = &glCreateFramebuffersNULL;
        createProgramPipelines                   = &glCreateProgramPipelinesNULL;
        createQueries                            = &glCreateQueriesNULL;
        createRenderbuffers                      = &glCreateRenderbuffersNULL;
        createSamplers                           = &glCreateSamplersNULL;
        createTextures                           = &glCreateTexturesNULL;
        createTransformFeedbacks                 = &glCreateTransformFeedbacksNULL;
        createVertexArrays                       = &glCreateVertexArraysNULL;
        disableVertexArrayAttrib                 = &glDisableVertexArrayAttribNULL;
        enableVertexArrayAttrib                  = &glEnableVertexArrayAttribNULL;
        flushMappedNamedBufferRange              = &glFlushMappedNamedBufferRangeNULL;
        generateTextureMipmap                    = &glGenerateTextureMipmapNULL;
        getCompressedTextureImage                = &glGetCompressedTextureImageNULL;
        getNamedBufferParameteri64v              = &glGetNamedBufferParameteri64vNULL;
        getNamedBufferParameteriv                = &glGetNamedBufferParameterivNULL;
        getNamedBufferPointerv                   = &glGetNamedBufferPointervNULL;
        getNamedBufferSubData                    = &glGetNamedBufferSubDataNULL;
        getNamedFramebufferAttachmentParameteriv = &glGetNamedFramebufferAttachmentParameterivNULL;
        getNamedFramebufferParameteriv           = &glGetNamedFramebufferParameterivNULL;
        getNamedRenderbufferParameteriv          = &glGetNamedRenderbufferParameterivNULL;
        getQueryBufferObjecti64v                 = &glGetQueryBufferObjecti64vNULL;
        getQueryBufferObjectiv                   = &glGetQueryBufferObjectivNULL;
        getQueryBufferObjectui64v                = &glGetQueryBufferObjectui64vNULL;
        getQueryBufferObjectuiv                  = &glGetQueryBufferObjectuivNULL;
        getTextureImage                          = &glGetTextureImageNULL;
        getTextureLevelParameterfv               = &glGetTextureLevelParameterfvNULL;
        getTextureLevelParameteriv               = &glGetTextureLevelParameterivNULL;
        getTextureParameterIiv                   = &glGetTextureParameterIivNULL;
        getTextureParameterIuiv                  = &glGetTextureParameterIuivNULL;
        getTextureParameterfv                    = &glGetTextureParameterfvNULL;
        getTextureParameteriv                    = &glGetTextureParameterivNULL;
        getTransformFeedbacki64_v                = &glGetTransformFeedbacki64_vNULL;
        getTransformFeedbacki_v                  = &glGetTransformFeedbacki_vNULL;
        getTransformFeedbackiv                   = &glGetTransformFeedbackivNULL;
        getVertexArrayIndexed64iv                = &glGetVertexArrayIndexed64ivNULL;
        getVertexArrayIndexediv                  = &glGetVertexArrayIndexedivNULL;
        getVertexArrayiv                         = &glGetVertexArrayivNULL;
        invalidateNamedFramebufferData           = &glInvalidateNamedFramebufferDataNULL;
        invalidateNamedFramebufferSubData        = &glInvalidateNamedFramebufferSubDataNULL;
        mapNamedBuffer                           = &glMapNamedBufferNULL;
        mapNamedBufferRange                      = &glMapNamedBufferRangeNULL;
        namedBufferData                          = &glNamedBufferDataNULL;
        namedBufferStorage                       = &glNamedBufferStorageNULL;
        namedBufferSubData                       = &glNamedBufferSubDataNULL;
        namedFramebufferDrawBuffer               = &glNamedFramebufferDrawBufferNULL;
        namedFramebufferDrawBuffers              = &glNamedFramebufferDrawBuffersNULL;
        namedFramebufferParameteri               = &glNamedFramebufferParameteriNULL;
        namedFramebufferReadBuffer               = &glNamedFramebufferReadBufferNULL;
        namedFramebufferRenderbuffer             = &glNamedFramebufferRenderbufferNULL;
        namedFramebufferTexture                  = &glNamedFramebufferTextureNULL;
        namedFramebufferTextureLayer             = &glNamedFramebufferTextureLayerNULL;
        namedRenderbufferStorage                 = &glNamedRenderbufferStorageNULL;
        namedRenderbufferStorageMultisample      = &glNamedRenderbufferStorageMultisampleNULL;
        textureBuffer                            = &glTextureBufferNULL;
        textureBufferRange                       = &glTextureBufferRangeNULL;
        textureParameterIiv                      = &glTextureParameterIivNULL;
        textureParameterIuiv                     = &glTextureParameterIuivNULL;
        textureParameterf                        = &glTextureParameterfNULL;
        textureParameterfv                       = &glTextureParameterfvNULL;
        textureParameteri                        = &glTextureParameteriNULL;
        textureParameteriv                       = &glTextureParameterivNULL;
        textureStorage1D                         = &glTextureStorage1DNULL;
        textureStorage2D                         = &glTextureStorage2DNULL;
        textureStorage2DMultisample              = &glTextureStorage2DMultisampleNULL;
        textureStorage3D                         = &glTextureStorage3DNULL;
        textureStorage3DMultisample              = &glTextureStorage3DMultisampleNULL;
        textureSubImage1D                        = &glTextureSubImage1DNULL;
        textureSubImage2D                        = &glTextureSubImage2DNULL;
        textureSubImage3D                        = &glTextureSubImage3DNULL;
        transformFeedbackBufferBase              = &glTransformFeedbackBufferBaseNULL;
        transformFeedbackBufferRange             = &glTransformFeedbackBufferRangeNULL;
        unmapNamedBuffer                         = &glUnmapNamedBufferNULL;
        vertexArrayAttribBinding                 = &glVertexArrayAttribBindingNULL;
        vertexArrayAttribFormat                  = &glVertexArrayAttribFormatNULL;
        vertexArrayAttribIFormat                 = &glVertexArrayAttribIFormatNULL;
        vertexArrayAttribLFormat                 = &glVertexArrayAttribLFormatNULL;
        vertexArrayBindingDivisor                = &glVertexArrayBindingDivisorNULL;
        vertexArrayElementBuffer                 = &glVertexArrayElementBufferNULL;
        vertexArrayVertexBuffer                  = &glVertexArrayVertexBufferNULL;
        vertexArrayVertexBuffers                 = &glVertexArrayVertexBuffersNULL;
    }

    if (extensions.count("GL_ARB_draw_buffers") != 0)
    {
        drawBuffers = &glDrawBuffersNULL;
    }

    if (extensions.count("GL_ARB_draw_buffers_blend") != 0)
    {
        blendEquationSeparatei = &glBlendEquationSeparateiNULL;
        blendEquationi         = &glBlendEquationiNULL;
        blendFuncSeparatei     = &glBlendFuncSeparateiNULL;
        blendFunci             = &glBlendFunciNULL;
    }

    if (extensions.count("GL_ARB_draw_elements_base_vertex") != 0)
    {
        drawElementsBaseVertex          = &glDrawElementsBaseVertexNULL;
        drawElementsInstancedBaseVertex = &glDrawElementsInstancedBaseVertexNULL;
        drawRangeElementsBaseVertex     = &glDrawRangeElementsBaseVertexNULL;
        multiDrawElementsBaseVertex     = &glMultiDrawElementsBaseVertexNULL;
    }

    if (extensions.count("GL_ARB_draw_indirect") != 0)
    {
        drawArraysIndirect   = &glDrawArraysIndirectNULL;
        drawElementsIndirect = &glDrawElementsIndirectNULL;
    }

    if (extensions.count("GL_ARB_draw_instanced") != 0)
    {
        drawArraysInstanced   = &glDrawArraysInstancedNULL;
        drawElementsInstanced = &glDrawElementsInstancedNULL;
    }

    if (extensions.count("GL_ARB_fragment_program") != 0)
    {
        getProgramiv = &glGetProgramivNULL;
        isProgram    = &glIsProgramNULL;
    }

    if (extensions.count("GL_ARB_framebuffer_no_attachments") != 0)
    {
        framebufferParameteri     = &glFramebufferParameteriNULL;
        getFramebufferParameteriv = &glGetFramebufferParameterivNULL;
    }

    if (extensions.count("GL_ARB_framebuffer_object") != 0)
    {
        bindFramebuffer                     = &glBindFramebufferNULL;
        bindRenderbuffer                    = &glBindRenderbufferNULL;
        blitFramebuffer                     = &glBlitFramebufferNULL;
        checkFramebufferStatus              = &glCheckFramebufferStatusNULL;
        deleteFramebuffers                  = &glDeleteFramebuffersNULL;
        deleteRenderbuffers                 = &glDeleteRenderbuffersNULL;
        framebufferRenderbuffer             = &glFramebufferRenderbufferNULL;
        framebufferTexture1D                = &glFramebufferTexture1DNULL;
        framebufferTexture2D                = &glFramebufferTexture2DNULL;
        framebufferTexture3D                = &glFramebufferTexture3DNULL;
        framebufferTextureLayer             = &glFramebufferTextureLayerNULL;
        genFramebuffers                     = &glGenFramebuffersNULL;
        genRenderbuffers                    = &glGenRenderbuffersNULL;
        generateMipmap                      = &glGenerateMipmapNULL;
        getFramebufferAttachmentParameteriv = &glGetFramebufferAttachmentParameterivNULL;
        getRenderbufferParameteriv          = &glGetRenderbufferParameterivNULL;
        isFramebuffer                       = &glIsFramebufferNULL;
        isRenderbuffer                      = &glIsRenderbufferNULL;
        renderbufferStorage                 = &glRenderbufferStorageNULL;
        renderbufferStorageMultisample      = &glRenderbufferStorageMultisampleNULL;
    }

    if (extensions.count("GL_ARB_geometry_shader4") != 0)
    {
        framebufferTexture      = &glFramebufferTextureNULL;
        framebufferTextureLayer = &glFramebufferTextureLayerNULL;
        programParameteri       = &glProgramParameteriNULL;
    }

    if (extensions.count("GL_ARB_get_program_binary") != 0)
    {
        getProgramBinary  = &glGetProgramBinaryNULL;
        programBinary     = &glProgramBinaryNULL;
        programParameteri = &glProgramParameteriNULL;
    }

    if (extensions.count("GL_ARB_get_texture_sub_image") != 0)
    {
        getCompressedTextureSubImage = &glGetCompressedTextureSubImageNULL;
        getTextureSubImage           = &glGetTextureSubImageNULL;
    }

    if (extensions.count("GL_ARB_gpu_shader_fp64") != 0)
    {
        getUniformdv       = &glGetUniformdvNULL;
        uniform1d          = &glUniform1dNULL;
        uniform1dv         = &glUniform1dvNULL;
        uniform2d          = &glUniform2dNULL;
        uniform2dv         = &glUniform2dvNULL;
        uniform3d          = &glUniform3dNULL;
        uniform3dv         = &glUniform3dvNULL;
        uniform4d          = &glUniform4dNULL;
        uniform4dv         = &glUniform4dvNULL;
        uniformMatrix2dv   = &glUniformMatrix2dvNULL;
        uniformMatrix2x3dv = &glUniformMatrix2x3dvNULL;
        uniformMatrix2x4dv = &glUniformMatrix2x4dvNULL;
        uniformMatrix3dv   = &glUniformMatrix3dvNULL;
        uniformMatrix3x2dv = &glUniformMatrix3x2dvNULL;
        uniformMatrix3x4dv = &glUniformMatrix3x4dvNULL;
        uniformMatrix4dv   = &glUniformMatrix4dvNULL;
        uniformMatrix4x2dv = &glUniformMatrix4x2dvNULL;
        uniformMatrix4x3dv = &glUniformMatrix4x3dvNULL;
    }

    if (extensions.count("GL_ARB_imaging") != 0)
    {
        blendColor    = &glBlendColorNULL;
        blendEquation = &glBlendEquationNULL;
    }

    if (extensions.count("GL_ARB_instanced_arrays") != 0)
    {
        vertexAttribDivisor = &glVertexAttribDivisorNULL;
    }

    if (extensions.count("GL_ARB_internalformat_query") != 0)
    {
        getInternalformativ = &glGetInternalformativNULL;
    }

    if (extensions.count("GL_ARB_internalformat_query2") != 0)
    {
        getInternalformati64v = &glGetInternalformati64vNULL;
    }

    if (extensions.count("GL_ARB_invalidate_subdata") != 0)
    {
        invalidateBufferData     = &glInvalidateBufferDataNULL;
        invalidateBufferSubData  = &glInvalidateBufferSubDataNULL;
        invalidateFramebuffer    = &glInvalidateFramebufferNULL;
        invalidateSubFramebuffer = &glInvalidateSubFramebufferNULL;
        invalidateTexImage       = &glInvalidateTexImageNULL;
        invalidateTexSubImage    = &glInvalidateTexSubImageNULL;
    }

    if (extensions.count("GL_ARB_map_buffer_range") != 0)
    {
        flushMappedBufferRange = &glFlushMappedBufferRangeNULL;
        mapBufferRange         = &glMapBufferRangeNULL;
    }

    if (extensions.count("GL_ARB_multi_bind") != 0)
    {
        bindBuffersBase   = &glBindBuffersBaseNULL;
        bindBuffersRange  = &glBindBuffersRangeNULL;
        bindImageTextures = &glBindImageTexturesNULL;
        bindSamplers      = &glBindSamplersNULL;
        bindTextures      = &glBindTexturesNULL;
        bindVertexBuffers = &glBindVertexBuffersNULL;
    }

    if (extensions.count("GL_ARB_multi_draw_indirect") != 0)
    {
        multiDrawArraysIndirect   = &glMultiDrawArraysIndirectNULL;
        multiDrawElementsIndirect = &glMultiDrawElementsIndirectNULL;
    }

    if (extensions.count("GL_ARB_multisample") != 0)
    {
        sampleCoverage = &glSampleCoverageNULL;
    }

    if (extensions.count("GL_ARB_multitexture") != 0)
    {
        activeTexture = &glActiveTextureNULL;
    }

    if (extensions.count("GL_ARB_occlusion_query") != 0)
    {
        beginQuery        = &glBeginQueryNULL;
        deleteQueries     = &glDeleteQueriesNULL;
        endQuery          = &glEndQueryNULL;
        genQueries        = &glGenQueriesNULL;
        getQueryObjectiv  = &glGetQueryObjectivNULL;
        getQueryObjectuiv = &glGetQueryObjectuivNULL;
        getQueryiv        = &glGetQueryivNULL;
        isQuery           = &glIsQueryNULL;
    }

    if (extensions.count("GL_ARB_parallel_shader_compile") != 0)
    {
        maxShaderCompilerThreadsARB = &glMaxShaderCompilerThreadsARBNULL;
    }

    if (extensions.count("GL_ARB_point_parameters") != 0)
    {
        pointParameterf  = &glPointParameterfNULL;
        pointParameterfv = &glPointParameterfvNULL;
    }

    if (extensions.count("GL_ARB_program_interface_query") != 0)
    {
        getProgramInterfaceiv           = &glGetProgramInterfaceivNULL;
        getProgramResourceIndex         = &glGetProgramResourceIndexNULL;
        getProgramResourceLocation      = &glGetProgramResourceLocationNULL;
        getProgramResourceLocationIndex = &glGetProgramResourceLocationIndexNULL;
        getProgramResourceName          = &glGetProgramResourceNameNULL;
        getProgramResourceiv            = &glGetProgramResourceivNULL;
    }

    if (extensions.count("GL_ARB_provoking_vertex") != 0)
    {
        provokingVertex = &glProvokingVertexNULL;
    }

    if (extensions.count("GL_ARB_robustness") != 0)
    {
        getGraphicsResetStatus = &glGetGraphicsResetStatusNULL;
        getnCompressedTexImage = &glGetnCompressedTexImageNULL;
        getnTexImage           = &glGetnTexImageNULL;
        getnUniformdv          = &glGetnUniformdvNULL;
        getnUniformfv          = &glGetnUniformfvNULL;
        getnUniformiv          = &glGetnUniformivNULL;
        getnUniformuiv         = &glGetnUniformuivNULL;
        readnPixels            = &glReadnPixelsNULL;
    }

    if (extensions.count("GL_ARB_sample_shading") != 0)
    {
        minSampleShading = &glMinSampleShadingNULL;
    }

    if (extensions.count("GL_ARB_sampler_objects") != 0)
    {
        bindSampler             = &glBindSamplerNULL;
        deleteSamplers          = &glDeleteSamplersNULL;
        genSamplers             = &glGenSamplersNULL;
        getSamplerParameterIiv  = &glGetSamplerParameterIivNULL;
        getSamplerParameterIuiv = &glGetSamplerParameterIuivNULL;
        getSamplerParameterfv   = &glGetSamplerParameterfvNULL;
        getSamplerParameteriv   = &glGetSamplerParameterivNULL;
        isSampler               = &glIsSamplerNULL;
        samplerParameterIiv     = &glSamplerParameterIivNULL;
        samplerParameterIuiv    = &glSamplerParameterIuivNULL;
        samplerParameterf       = &glSamplerParameterfNULL;
        samplerParameterfv      = &glSamplerParameterfvNULL;
        samplerParameteri       = &glSamplerParameteriNULL;
        samplerParameteriv      = &glSamplerParameterivNULL;
    }

    if (extensions.count("GL_ARB_separate_shader_objects") != 0)
    {
        activeShaderProgram       = &glActiveShaderProgramNULL;
        bindProgramPipeline       = &glBindProgramPipelineNULL;
        createShaderProgramv      = &glCreateShaderProgramvNULL;
        deleteProgramPipelines    = &glDeleteProgramPipelinesNULL;
        genProgramPipelines       = &glGenProgramPipelinesNULL;
        getProgramPipelineInfoLog = &glGetProgramPipelineInfoLogNULL;
        getProgramPipelineiv      = &glGetProgramPipelineivNULL;
        isProgramPipeline         = &glIsProgramPipelineNULL;
        programParameteri         = &glProgramParameteriNULL;
        programUniform1d          = &glProgramUniform1dNULL;
        programUniform1dv         = &glProgramUniform1dvNULL;
        programUniform1f          = &glProgramUniform1fNULL;
        programUniform1fv         = &glProgramUniform1fvNULL;
        programUniform1i          = &glProgramUniform1iNULL;
        programUniform1iv         = &glProgramUniform1ivNULL;
        programUniform1ui         = &glProgramUniform1uiNULL;
        programUniform1uiv        = &glProgramUniform1uivNULL;
        programUniform2d          = &glProgramUniform2dNULL;
        programUniform2dv         = &glProgramUniform2dvNULL;
        programUniform2f          = &glProgramUniform2fNULL;
        programUniform2fv         = &glProgramUniform2fvNULL;
        programUniform2i          = &glProgramUniform2iNULL;
        programUniform2iv         = &glProgramUniform2ivNULL;
        programUniform2ui         = &glProgramUniform2uiNULL;
        programUniform2uiv        = &glProgramUniform2uivNULL;
        programUniform3d          = &glProgramUniform3dNULL;
        programUniform3dv         = &glProgramUniform3dvNULL;
        programUniform3f          = &glProgramUniform3fNULL;
        programUniform3fv         = &glProgramUniform3fvNULL;
        programUniform3i          = &glProgramUniform3iNULL;
        programUniform3iv         = &glProgramUniform3ivNULL;
        programUniform3ui         = &glProgramUniform3uiNULL;
        programUniform3uiv        = &glProgramUniform3uivNULL;
        programUniform4d          = &glProgramUniform4dNULL;
        programUniform4dv         = &glProgramUniform4dvNULL;
        programUniform4f          = &glProgramUniform4fNULL;
        programUniform4fv         = &glProgramUniform4fvNULL;
        programUniform4i          = &glProgramUniform4iNULL;
        programUniform4iv         = &glProgramUniform4ivNULL;
        programUniform4ui         = &glProgramUniform4uiNULL;
        programUniform4uiv        = &glProgramUniform4uivNULL;
        programUniformMatrix2dv   = &glProgramUniformMatrix2dvNULL;
        programUniformMatrix2fv   = &glProgramUniformMatrix2fvNULL;
        programUniformMatrix2x3dv = &glProgramUniformMatrix2x3dvNULL;
        programUniformMatrix2x3fv = &glProgramUniformMatrix2x3fvNULL;
        programUniformMatrix2x4dv = &glProgramUniformMatrix2x4dvNULL;
        programUniformMatrix2x4fv = &glProgramUniformMatrix2x4fvNULL;
        programUniformMatrix3dv   = &glProgramUniformMatrix3dvNULL;
        programUniformMatrix3fv   = &glProgramUniformMatrix3fvNULL;
        programUniformMatrix3x2dv = &glProgramUniformMatrix3x2dvNULL;
        programUniformMatrix3x2fv = &glProgramUniformMatrix3x2fvNULL;
        programUniformMatrix3x4dv = &glProgramUniformMatrix3x4dvNULL;
        programUniformMatrix3x4fv = &glProgramUniformMatrix3x4fvNULL;
        programUniformMatrix4dv   = &glProgramUniformMatrix4dvNULL;
        programUniformMatrix4fv   = &glProgramUniformMatrix4fvNULL;
        programUniformMatrix4x2dv = &glProgramUniformMatrix4x2dvNULL;
        programUniformMatrix4x2fv = &glProgramUniformMatrix4x2fvNULL;
        programUniformMatrix4x3dv = &glProgramUniformMatrix4x3dvNULL;
        programUniformMatrix4x3fv = &glProgramUniformMatrix4x3fvNULL;
        useProgramStages          = &glUseProgramStagesNULL;
        validateProgramPipeline   = &glValidateProgramPipelineNULL;
    }

    if (extensions.count("GL_ARB_shader_atomic_counters") != 0)
    {
        getActiveAtomicCounterBufferiv = &glGetActiveAtomicCounterBufferivNULL;
    }

    if (extensions.count("GL_ARB_shader_image_load_store") != 0)
    {
        bindImageTexture = &glBindImageTextureNULL;
        memoryBarrier    = &glMemoryBarrierNULL;
    }

    if (extensions.count("GL_ARB_shader_objects") != 0)
    {
        compileShader      = &glCompileShaderNULL;
        getActiveUniform   = &glGetActiveUniformNULL;
        getShaderSource    = &glGetShaderSourceNULL;
        getUniformLocation = &glGetUniformLocationNULL;
        getUniformfv       = &glGetUniformfvNULL;
        getUniformiv       = &glGetUniformivNULL;
        linkProgram        = &glLinkProgramNULL;
        shaderSource       = &glShaderSourceNULL;
        uniform1f          = &glUniform1fNULL;
        uniform1fv         = &glUniform1fvNULL;
        uniform1i          = &glUniform1iNULL;
        uniform1iv         = &glUniform1ivNULL;
        uniform2f          = &glUniform2fNULL;
        uniform2fv         = &glUniform2fvNULL;
        uniform2i          = &glUniform2iNULL;
        uniform2iv         = &glUniform2ivNULL;
        uniform3f          = &glUniform3fNULL;
        uniform3fv         = &glUniform3fvNULL;
        uniform3i          = &glUniform3iNULL;
        uniform3iv         = &glUniform3ivNULL;
        uniform4f          = &glUniform4fNULL;
        uniform4fv         = &glUniform4fvNULL;
        uniform4i          = &glUniform4iNULL;
        uniform4iv         = &glUniform4ivNULL;
        uniformMatrix2fv   = &glUniformMatrix2fvNULL;
        uniformMatrix3fv   = &glUniformMatrix3fvNULL;
        uniformMatrix4fv   = &glUniformMatrix4fvNULL;
        validateProgram    = &glValidateProgramNULL;
    }

    if (extensions.count("GL_ARB_shader_storage_buffer_object") != 0)
    {
        shaderStorageBlockBinding = &glShaderStorageBlockBindingNULL;
    }

    if (extensions.count("GL_ARB_shader_subroutine") != 0)
    {
        getActiveSubroutineName        = &glGetActiveSubroutineNameNULL;
        getActiveSubroutineUniformName = &glGetActiveSubroutineUniformNameNULL;
        getActiveSubroutineUniformiv   = &glGetActiveSubroutineUniformivNULL;
        getProgramStageiv              = &glGetProgramStageivNULL;
        getSubroutineIndex             = &glGetSubroutineIndexNULL;
        getSubroutineUniformLocation   = &glGetSubroutineUniformLocationNULL;
        getUniformSubroutineuiv        = &glGetUniformSubroutineuivNULL;
        uniformSubroutinesuiv          = &glUniformSubroutinesuivNULL;
    }

    if (extensions.count("GL_ARB_tessellation_shader") != 0)
    {
        patchParameterfv = &glPatchParameterfvNULL;
        patchParameteri  = &glPatchParameteriNULL;
    }

    if (extensions.count("GL_ARB_texture_barrier") != 0)
    {
        textureBarrier = &glTextureBarrierNULL;
    }

    if (extensions.count("GL_ARB_texture_buffer_object") != 0)
    {
        texBuffer = &glTexBufferNULL;
    }

    if (extensions.count("GL_ARB_texture_buffer_range") != 0)
    {
        texBufferRange = &glTexBufferRangeNULL;
    }

    if (extensions.count("GL_ARB_texture_compression") != 0)
    {
        compressedTexImage1D    = &glCompressedTexImage1DNULL;
        compressedTexImage2D    = &glCompressedTexImage2DNULL;
        compressedTexImage3D    = &glCompressedTexImage3DNULL;
        compressedTexSubImage1D = &glCompressedTexSubImage1DNULL;
        compressedTexSubImage2D = &glCompressedTexSubImage2DNULL;
        compressedTexSubImage3D = &glCompressedTexSubImage3DNULL;
        getCompressedTexImage   = &glGetCompressedTexImageNULL;
    }

    if (extensions.count("GL_ARB_texture_multisample") != 0)
    {
        getMultisamplefv      = &glGetMultisamplefvNULL;
        sampleMaski           = &glSampleMaskiNULL;
        texImage2DMultisample = &glTexImage2DMultisampleNULL;
        texImage3DMultisample = &glTexImage3DMultisampleNULL;
    }

    if (extensions.count("GL_ARB_texture_storage") != 0)
    {
        texStorage1D = &glTexStorage1DNULL;
        texStorage2D = &glTexStorage2DNULL;
        texStorage3D = &glTexStorage3DNULL;
    }

    if (extensions.count("GL_ARB_texture_storage_multisample") != 0)
    {
        texStorage2DMultisample = &glTexStorage2DMultisampleNULL;
        texStorage3DMultisample = &glTexStorage3DMultisampleNULL;
    }

    if (extensions.count("GL_ARB_texture_view") != 0)
    {
        textureView = &glTextureViewNULL;
    }

    if (extensions.count("GL_ARB_timer_query") != 0)
    {
        getQueryObjecti64v  = &glGetQueryObjecti64vNULL;
        getQueryObjectui64v = &glGetQueryObjectui64vNULL;
        queryCounter        = &glQueryCounterNULL;
    }

    if (extensions.count("GL_ARB_transform_feedback2") != 0)
    {
        bindTransformFeedback    = &glBindTransformFeedbackNULL;
        deleteTransformFeedbacks = &glDeleteTransformFeedbacksNULL;
        drawTransformFeedback    = &glDrawTransformFeedbackNULL;
        genTransformFeedbacks    = &glGenTransformFeedbacksNULL;
        isTransformFeedback      = &glIsTransformFeedbackNULL;
        pauseTransformFeedback   = &glPauseTransformFeedbackNULL;
        resumeTransformFeedback  = &glResumeTransformFeedbackNULL;
    }

    if (extensions.count("GL_ARB_transform_feedback3") != 0)
    {
        beginQueryIndexed           = &glBeginQueryIndexedNULL;
        drawTransformFeedbackStream = &glDrawTransformFeedbackStreamNULL;
        endQueryIndexed             = &glEndQueryIndexedNULL;
        getQueryIndexediv           = &glGetQueryIndexedivNULL;
    }

    if (extensions.count("GL_ARB_transform_feedback_instanced") != 0)
    {
        drawTransformFeedbackInstanced       = &glDrawTransformFeedbackInstancedNULL;
        drawTransformFeedbackStreamInstanced = &glDrawTransformFeedbackStreamInstancedNULL;
    }

    if (extensions.count("GL_ARB_uniform_buffer_object") != 0)
    {
        bindBufferBase            = &glBindBufferBaseNULL;
        bindBufferRange           = &glBindBufferRangeNULL;
        getActiveUniformBlockName = &glGetActiveUniformBlockNameNULL;
        getActiveUniformBlockiv   = &glGetActiveUniformBlockivNULL;
        getActiveUniformName      = &glGetActiveUniformNameNULL;
        getActiveUniformsiv       = &glGetActiveUniformsivNULL;
        getIntegeri_v             = &glGetIntegeri_vNULL;
        getUniformBlockIndex      = &glGetUniformBlockIndexNULL;
        getUniformIndices         = &glGetUniformIndicesNULL;
        uniformBlockBinding       = &glUniformBlockBindingNULL;
    }

    if (extensions.count("GL_ARB_vertex_array_object") != 0)
    {
        bindVertexArray    = &glBindVertexArrayNULL;
        deleteVertexArrays = &glDeleteVertexArraysNULL;
        genVertexArrays    = &glGenVertexArraysNULL;
        isVertexArray      = &glIsVertexArrayNULL;
    }

    if (extensions.count("GL_ARB_vertex_attrib_64bit") != 0)
    {
        getVertexAttribLdv   = &glGetVertexAttribLdvNULL;
        vertexAttribL1d      = &glVertexAttribL1dNULL;
        vertexAttribL1dv     = &glVertexAttribL1dvNULL;
        vertexAttribL2d      = &glVertexAttribL2dNULL;
        vertexAttribL2dv     = &glVertexAttribL2dvNULL;
        vertexAttribL3d      = &glVertexAttribL3dNULL;
        vertexAttribL3dv     = &glVertexAttribL3dvNULL;
        vertexAttribL4d      = &glVertexAttribL4dNULL;
        vertexAttribL4dv     = &glVertexAttribL4dvNULL;
        vertexAttribLPointer = &glVertexAttribLPointerNULL;
    }

    if (extensions.count("GL_ARB_vertex_attrib_binding") != 0)
    {
        bindVertexBuffer     = &glBindVertexBufferNULL;
        vertexAttribBinding  = &glVertexAttribBindingNULL;
        vertexAttribFormat   = &glVertexAttribFormatNULL;
        vertexAttribIFormat  = &glVertexAttribIFormatNULL;
        vertexAttribLFormat  = &glVertexAttribLFormatNULL;
        vertexBindingDivisor = &glVertexBindingDivisorNULL;
    }

    if (extensions.count("GL_ARB_vertex_buffer_object") != 0)
    {
        bindBuffer           = &glBindBufferNULL;
        bufferData           = &glBufferDataNULL;
        bufferSubData        = &glBufferSubDataNULL;
        deleteBuffers        = &glDeleteBuffersNULL;
        genBuffers           = &glGenBuffersNULL;
        getBufferParameteriv = &glGetBufferParameterivNULL;
        getBufferPointerv    = &glGetBufferPointervNULL;
        getBufferSubData     = &glGetBufferSubDataNULL;
        isBuffer             = &glIsBufferNULL;
        mapBuffer            = &glMapBufferNULL;
        unmapBuffer          = &glUnmapBufferNULL;
    }

    if (extensions.count("GL_ARB_vertex_program") != 0)
    {
        disableVertexAttribArray = &glDisableVertexAttribArrayNULL;
        enableVertexAttribArray  = &glEnableVertexAttribArrayNULL;
        getProgramiv             = &glGetProgramivNULL;
        getVertexAttribPointerv  = &glGetVertexAttribPointervNULL;
        getVertexAttribdv        = &glGetVertexAttribdvNULL;
        getVertexAttribfv        = &glGetVertexAttribfvNULL;
        getVertexAttribiv        = &glGetVertexAttribivNULL;
        isProgram                = &glIsProgramNULL;
        vertexAttrib1d           = &glVertexAttrib1dNULL;
        vertexAttrib1dv          = &glVertexAttrib1dvNULL;
        vertexAttrib1f           = &glVertexAttrib1fNULL;
        vertexAttrib1fv          = &glVertexAttrib1fvNULL;
        vertexAttrib1s           = &glVertexAttrib1sNULL;
        vertexAttrib1sv          = &glVertexAttrib1svNULL;
        vertexAttrib2d           = &glVertexAttrib2dNULL;
        vertexAttrib2dv          = &glVertexAttrib2dvNULL;
        vertexAttrib2f           = &glVertexAttrib2fNULL;
        vertexAttrib2fv          = &glVertexAttrib2fvNULL;
        vertexAttrib2s           = &glVertexAttrib2sNULL;
        vertexAttrib2sv          = &glVertexAttrib2svNULL;
        vertexAttrib3d           = &glVertexAttrib3dNULL;
        vertexAttrib3dv          = &glVertexAttrib3dvNULL;
        vertexAttrib3f           = &glVertexAttrib3fNULL;
        vertexAttrib3fv          = &glVertexAttrib3fvNULL;
        vertexAttrib3s           = &glVertexAttrib3sNULL;
        vertexAttrib3sv          = &glVertexAttrib3svNULL;
        vertexAttrib4Nbv         = &glVertexAttrib4NbvNULL;
        vertexAttrib4Niv         = &glVertexAttrib4NivNULL;
        vertexAttrib4Nsv         = &glVertexAttrib4NsvNULL;
        vertexAttrib4Nub         = &glVertexAttrib4NubNULL;
        vertexAttrib4Nubv        = &glVertexAttrib4NubvNULL;
        vertexAttrib4Nuiv        = &glVertexAttrib4NuivNULL;
        vertexAttrib4Nusv        = &glVertexAttrib4NusvNULL;
        vertexAttrib4bv          = &glVertexAttrib4bvNULL;
        vertexAttrib4d           = &glVertexAttrib4dNULL;
        vertexAttrib4dv          = &glVertexAttrib4dvNULL;
        vertexAttrib4f           = &glVertexAttrib4fNULL;
        vertexAttrib4fv          = &glVertexAttrib4fvNULL;
        vertexAttrib4iv          = &glVertexAttrib4ivNULL;
        vertexAttrib4s           = &glVertexAttrib4sNULL;
        vertexAttrib4sv          = &glVertexAttrib4svNULL;
        vertexAttrib4ubv         = &glVertexAttrib4ubvNULL;
        vertexAttrib4uiv         = &glVertexAttrib4uivNULL;
        vertexAttrib4usv         = &glVertexAttrib4usvNULL;
        vertexAttribPointer      = &glVertexAttribPointerNULL;
    }

    if (extensions.count("GL_ARB_vertex_shader") != 0)
    {
        bindAttribLocation       = &glBindAttribLocationNULL;
        disableVertexAttribArray = &glDisableVertexAttribArrayNULL;
        enableVertexAttribArray  = &glEnableVertexAttribArrayNULL;
        getActiveAttrib          = &glGetActiveAttribNULL;
        getAttribLocation        = &glGetAttribLocationNULL;
        getVertexAttribPointerv  = &glGetVertexAttribPointervNULL;
        getVertexAttribdv        = &glGetVertexAttribdvNULL;
        getVertexAttribfv        = &glGetVertexAttribfvNULL;
        getVertexAttribiv        = &glGetVertexAttribivNULL;
        vertexAttrib1d           = &glVertexAttrib1dNULL;
        vertexAttrib1dv          = &glVertexAttrib1dvNULL;
        vertexAttrib1f           = &glVertexAttrib1fNULL;
        vertexAttrib1fv          = &glVertexAttrib1fvNULL;
        vertexAttrib1s           = &glVertexAttrib1sNULL;
        vertexAttrib1sv          = &glVertexAttrib1svNULL;
        vertexAttrib2d           = &glVertexAttrib2dNULL;
        vertexAttrib2dv          = &glVertexAttrib2dvNULL;
        vertexAttrib2f           = &glVertexAttrib2fNULL;
        vertexAttrib2fv          = &glVertexAttrib2fvNULL;
        vertexAttrib2s           = &glVertexAttrib2sNULL;
        vertexAttrib2sv          = &glVertexAttrib2svNULL;
        vertexAttrib3d           = &glVertexAttrib3dNULL;
        vertexAttrib3dv          = &glVertexAttrib3dvNULL;
        vertexAttrib3f           = &glVertexAttrib3fNULL;
        vertexAttrib3fv          = &glVertexAttrib3fvNULL;
        vertexAttrib3s           = &glVertexAttrib3sNULL;
        vertexAttrib3sv          = &glVertexAttrib3svNULL;
        vertexAttrib4Nbv         = &glVertexAttrib4NbvNULL;
        vertexAttrib4Niv         = &glVertexAttrib4NivNULL;
        vertexAttrib4Nsv         = &glVertexAttrib4NsvNULL;
        vertexAttrib4Nub         = &glVertexAttrib4NubNULL;
        vertexAttrib4Nubv        = &glVertexAttrib4NubvNULL;
        vertexAttrib4Nuiv        = &glVertexAttrib4NuivNULL;
        vertexAttrib4Nusv        = &glVertexAttrib4NusvNULL;
        vertexAttrib4bv          = &glVertexAttrib4bvNULL;
        vertexAttrib4d           = &glVertexAttrib4dNULL;
        vertexAttrib4dv          = &glVertexAttrib4dvNULL;
        vertexAttrib4f           = &glVertexAttrib4fNULL;
        vertexAttrib4fv          = &glVertexAttrib4fvNULL;
        vertexAttrib4iv          = &glVertexAttrib4ivNULL;
        vertexAttrib4s           = &glVertexAttrib4sNULL;
        vertexAttrib4sv          = &glVertexAttrib4svNULL;
        vertexAttrib4ubv         = &glVertexAttrib4ubvNULL;
        vertexAttrib4uiv         = &glVertexAttrib4uivNULL;
        vertexAttrib4usv         = &glVertexAttrib4usvNULL;
        vertexAttribPointer      = &glVertexAttribPointerNULL;
    }

    if (extensions.count("GL_ARB_vertex_type_2_10_10_10_rev") != 0)
    {
        vertexAttribP1ui  = &glVertexAttribP1uiNULL;
        vertexAttribP1uiv = &glVertexAttribP1uivNULL;
        vertexAttribP2ui  = &glVertexAttribP2uiNULL;
        vertexAttribP2uiv = &glVertexAttribP2uivNULL;
        vertexAttribP3ui  = &glVertexAttribP3uiNULL;
        vertexAttribP3uiv = &glVertexAttribP3uivNULL;
        vertexAttribP4ui  = &glVertexAttribP4uiNULL;
        vertexAttribP4uiv = &glVertexAttribP4uivNULL;
    }

    if (extensions.count("GL_ARB_viewport_array") != 0)
    {
        depthRangeArrayv  = &glDepthRangeArrayvNULL;
        depthRangeIndexed = &glDepthRangeIndexedNULL;
        getDoublei_v      = &glGetDoublei_vNULL;
        getFloati_v       = &glGetFloati_vNULL;
        scissorArrayv     = &glScissorArrayvNULL;
        scissorIndexed    = &glScissorIndexedNULL;
        scissorIndexedv   = &glScissorIndexedvNULL;
        viewportArrayv    = &glViewportArrayvNULL;
        viewportIndexedf  = &glViewportIndexedfNULL;
        viewportIndexedfv = &glViewportIndexedfvNULL;
    }

    if (extensions.count("GL_EXT_blend_color") != 0)
    {
        blendColor = &glBlendColorNULL;
    }

    if (extensions.count("GL_EXT_blend_equation_separate") != 0)
    {
        blendEquationSeparate = &glBlendEquationSeparateNULL;
    }

    if (extensions.count("GL_EXT_blend_func_separate") != 0)
    {
        blendFuncSeparate = &glBlendFuncSeparateNULL;
    }

    if (extensions.count("GL_EXT_copy_texture") != 0)
    {
        copyTexImage1D    = &glCopyTexImage1DNULL;
        copyTexImage2D    = &glCopyTexImage2DNULL;
        copyTexSubImage1D = &glCopyTexSubImage1DNULL;
        copyTexSubImage2D = &glCopyTexSubImage2DNULL;
        copyTexSubImage3D = &glCopyTexSubImage3DNULL;
    }

    if (extensions.count("GL_EXT_direct_state_access") != 0)
    {
        checkNamedFramebufferStatus              = &glCheckNamedFramebufferStatusNULL;
        clearNamedBufferData                     = &glClearNamedBufferDataNULL;
        clearNamedBufferSubData                  = &glClearNamedBufferSubDataNULL;
        compressedTextureSubImage1D              = &glCompressedTextureSubImage1DNULL;
        compressedTextureSubImage2D              = &glCompressedTextureSubImage2DNULL;
        compressedTextureSubImage3D              = &glCompressedTextureSubImage3DNULL;
        copyTextureSubImage1D                    = &glCopyTextureSubImage1DNULL;
        copyTextureSubImage2D                    = &glCopyTextureSubImage2DNULL;
        copyTextureSubImage3D                    = &glCopyTextureSubImage3DNULL;
        disableVertexArrayAttrib                 = &glDisableVertexArrayAttribNULL;
        enableVertexArrayAttrib                  = &glEnableVertexArrayAttribNULL;
        flushMappedNamedBufferRange              = &glFlushMappedNamedBufferRangeNULL;
        generateTextureMipmap                    = &glGenerateTextureMipmapNULL;
        getCompressedTextureImage                = &glGetCompressedTextureImageNULL;
        getDoublei_v                             = &glGetDoublei_vNULL;
        getFloati_v                              = &glGetFloati_vNULL;
        getFramebufferParameteriv                = &glGetFramebufferParameterivNULL;
        getNamedBufferParameteriv                = &glGetNamedBufferParameterivNULL;
        getNamedBufferPointerv                   = &glGetNamedBufferPointervNULL;
        getNamedBufferSubData                    = &glGetNamedBufferSubDataNULL;
        getNamedFramebufferAttachmentParameteriv = &glGetNamedFramebufferAttachmentParameterivNULL;
        getNamedFramebufferParameteriv           = &glGetNamedFramebufferParameterivNULL;
        getNamedRenderbufferParameteriv          = &glGetNamedRenderbufferParameterivNULL;
        getTextureImage                          = &glGetTextureImageNULL;
        getTextureLevelParameterfv               = &glGetTextureLevelParameterfvNULL;
        getTextureLevelParameteriv               = &glGetTextureLevelParameterivNULL;
        getTextureParameterIiv                   = &glGetTextureParameterIivNULL;
        getTextureParameterIuiv                  = &glGetTextureParameterIuivNULL;
        getTextureParameterfv                    = &glGetTextureParameterfvNULL;
        getTextureParameteriv                    = &glGetTextureParameterivNULL;
        mapNamedBuffer                           = &glMapNamedBufferNULL;
        mapNamedBufferRange                      = &glMapNamedBufferRangeNULL;
        namedBufferData                          = &glNamedBufferDataNULL;
        namedBufferStorage                       = &glNamedBufferStorageNULL;
        namedBufferSubData                       = &glNamedBufferSubDataNULL;
        namedFramebufferParameteri               = &glNamedFramebufferParameteriNULL;
        namedFramebufferRenderbuffer             = &glNamedFramebufferRenderbufferNULL;
        namedFramebufferTexture                  = &glNamedFramebufferTextureNULL;
        namedFramebufferTextureLayer             = &glNamedFramebufferTextureLayerNULL;
        namedRenderbufferStorage                 = &glNamedRenderbufferStorageNULL;
        namedRenderbufferStorageMultisample      = &glNamedRenderbufferStorageMultisampleNULL;
        programUniform1d                         = &glProgramUniform1dNULL;
        programUniform1dv                        = &glProgramUniform1dvNULL;
        programUniform2d                         = &glProgramUniform2dNULL;
        programUniform2dv                        = &glProgramUniform2dvNULL;
        programUniform3d                         = &glProgramUniform3dNULL;
        programUniform3dv                        = &glProgramUniform3dvNULL;
        programUniform4d                         = &glProgramUniform4dNULL;
        programUniform4dv                        = &glProgramUniform4dvNULL;
        programUniformMatrix2dv                  = &glProgramUniformMatrix2dvNULL;
        programUniformMatrix2x3dv                = &glProgramUniformMatrix2x3dvNULL;
        programUniformMatrix2x4dv                = &glProgramUniformMatrix2x4dvNULL;
        programUniformMatrix3dv                  = &glProgramUniformMatrix3dvNULL;
        programUniformMatrix3x2dv                = &glProgramUniformMatrix3x2dvNULL;
        programUniformMatrix3x4dv                = &glProgramUniformMatrix3x4dvNULL;
        programUniformMatrix4dv                  = &glProgramUniformMatrix4dvNULL;
        programUniformMatrix4x2dv                = &glProgramUniformMatrix4x2dvNULL;
        programUniformMatrix4x3dv                = &glProgramUniformMatrix4x3dvNULL;
        textureBuffer                            = &glTextureBufferNULL;
        textureBufferRange                       = &glTextureBufferRangeNULL;
        textureParameterIiv                      = &glTextureParameterIivNULL;
        textureParameterIuiv                     = &glTextureParameterIuivNULL;
        textureParameterf                        = &glTextureParameterfNULL;
        textureParameterfv                       = &glTextureParameterfvNULL;
        textureParameteri                        = &glTextureParameteriNULL;
        textureParameteriv                       = &glTextureParameterivNULL;
        textureStorage1D                         = &glTextureStorage1DNULL;
        textureStorage2D                         = &glTextureStorage2DNULL;
        textureStorage2DMultisample              = &glTextureStorage2DMultisampleNULL;
        textureStorage3D                         = &glTextureStorage3DNULL;
        textureStorage3DMultisample              = &glTextureStorage3DMultisampleNULL;
        textureSubImage1D                        = &glTextureSubImage1DNULL;
        textureSubImage2D                        = &glTextureSubImage2DNULL;
        textureSubImage3D                        = &glTextureSubImage3DNULL;
        unmapNamedBuffer                         = &glUnmapNamedBufferNULL;
    }

    if (extensions.count("GL_EXT_draw_range_elements") != 0)
    {
        drawRangeElements = &glDrawRangeElementsNULL;
    }

    if (extensions.count("GL_EXT_framebuffer_blit") != 0)
    {
        blitFramebuffer    = &glBlitFramebufferNULL;
        blitFramebufferEXT = &glBlitFramebufferEXTNULL;
    }

    if (extensions.count("GL_EXT_framebuffer_multisample") != 0)
    {
        renderbufferStorageMultisample    = &glRenderbufferStorageMultisampleNULL;
        renderbufferStorageMultisampleEXT = &glRenderbufferStorageMultisampleEXTNULL;
    }

    if (extensions.count("GL_EXT_framebuffer_object") != 0)
    {
        bindFramebuffer                     = &glBindFramebufferNULL;
        bindRenderbuffer                    = &glBindRenderbufferNULL;
        checkFramebufferStatus              = &glCheckFramebufferStatusNULL;
        deleteFramebuffers                  = &glDeleteFramebuffersNULL;
        deleteRenderbuffers                 = &glDeleteRenderbuffersNULL;
        framebufferRenderbuffer             = &glFramebufferRenderbufferNULL;
        framebufferTexture1D                = &glFramebufferTexture1DNULL;
        framebufferTexture2D                = &glFramebufferTexture2DNULL;
        framebufferTexture3D                = &glFramebufferTexture3DNULL;
        genFramebuffers                     = &glGenFramebuffersNULL;
        genRenderbuffers                    = &glGenRenderbuffersNULL;
        generateMipmap                      = &glGenerateMipmapNULL;
        getFramebufferAttachmentParameteriv = &glGetFramebufferAttachmentParameterivNULL;
        getRenderbufferParameteriv          = &glGetRenderbufferParameterivNULL;
        isFramebuffer                       = &glIsFramebufferNULL;
        isRenderbuffer                      = &glIsRenderbufferNULL;
        renderbufferStorage                 = &glRenderbufferStorageNULL;
    }

    if (extensions.count("GL_EXT_gpu_shader4") != 0)
    {
        bindFragDataLocation = &glBindFragDataLocationNULL;
        getFragDataLocation  = &glGetFragDataLocationNULL;
        getUniformuiv        = &glGetUniformuivNULL;
        uniform1ui           = &glUniform1uiNULL;
        uniform1uiv          = &glUniform1uivNULL;
        uniform2ui           = &glUniform2uiNULL;
        uniform2uiv          = &glUniform2uivNULL;
        uniform3ui           = &glUniform3uiNULL;
        uniform3uiv          = &glUniform3uivNULL;
        uniform4ui           = &glUniform4uiNULL;
        uniform4uiv          = &glUniform4uivNULL;
    }

    if (extensions.count("GL_EXT_point_parameters") != 0)
    {
        pointParameterf  = &glPointParameterfNULL;
        pointParameterfv = &glPointParameterfvNULL;
    }

    if (extensions.count("GL_EXT_polygon_offset") != 0)
    {
        polygonOffset = &glPolygonOffsetNULL;
    }

    if (extensions.count("GL_EXT_provoking_vertex") != 0)
    {
        provokingVertex = &glProvokingVertexNULL;
    }

    if (extensions.count("GL_EXT_shader_image_load_store") != 0)
    {
        bindImageTexture = &glBindImageTextureNULL;
        memoryBarrier    = &glMemoryBarrierNULL;
    }

    if (extensions.count("GL_EXT_subtexture") != 0)
    {
        texSubImage1D = &glTexSubImage1DNULL;
        texSubImage2D = &glTexSubImage2DNULL;
    }

    if (extensions.count("GL_EXT_texture3D") != 0)
    {
        texImage3D    = &glTexImage3DNULL;
        texSubImage3D = &glTexSubImage3DNULL;
    }

    if (extensions.count("GL_EXT_texture_array") != 0)
    {
        framebufferTextureLayer = &glFramebufferTextureLayerNULL;
    }

    if (extensions.count("GL_EXT_texture_buffer_object") != 0)
    {
        texBuffer    = &glTexBufferNULL;
        texBufferEXT = &glTexBufferEXTNULL;
    }

    if (extensions.count("GL_EXT_texture_integer") != 0)
    {
        getTexParameterIiv  = &glGetTexParameterIivNULL;
        getTexParameterIuiv = &glGetTexParameterIuivNULL;
        texParameterIiv     = &glTexParameterIivNULL;
        texParameterIuiv    = &glTexParameterIuivNULL;
    }

    if (extensions.count("GL_EXT_texture_object") != 0)
    {
        bindTexture    = &glBindTextureNULL;
        deleteTextures = &glDeleteTexturesNULL;
        genTextures    = &glGenTexturesNULL;
        isTexture      = &glIsTextureNULL;
    }

    if (extensions.count("GL_EXT_timer_query") != 0)
    {
        getQueryObjecti64v  = &glGetQueryObjecti64vNULL;
        getQueryObjectui64v = &glGetQueryObjectui64vNULL;
    }

    if (extensions.count("GL_EXT_transform_feedback") != 0)
    {
        beginTransformFeedback      = &glBeginTransformFeedbackNULL;
        bindBufferBase              = &glBindBufferBaseNULL;
        bindBufferRange             = &glBindBufferRangeNULL;
        endTransformFeedback        = &glEndTransformFeedbackNULL;
        getTransformFeedbackVarying = &glGetTransformFeedbackVaryingNULL;
        transformFeedbackVaryings   = &glTransformFeedbackVaryingsNULL;
    }

    if (extensions.count("GL_EXT_vertex_array") != 0)
    {
        drawArrays  = &glDrawArraysNULL;
        getPointerv = &glGetPointervNULL;
    }

    if (extensions.count("GL_EXT_vertex_attrib_64bit") != 0)
    {
        getVertexAttribLdv   = &glGetVertexAttribLdvNULL;
        vertexAttribL1d      = &glVertexAttribL1dNULL;
        vertexAttribL1dv     = &glVertexAttribL1dvNULL;
        vertexAttribL2d      = &glVertexAttribL2dNULL;
        vertexAttribL2dv     = &glVertexAttribL2dvNULL;
        vertexAttribL3d      = &glVertexAttribL3dNULL;
        vertexAttribL3dv     = &glVertexAttribL3dvNULL;
        vertexAttribL4d      = &glVertexAttribL4dNULL;
        vertexAttribL4dv     = &glVertexAttribL4dvNULL;
        vertexAttribLPointer = &glVertexAttribLPointerNULL;
    }

    if (extensions.count("GL_KHR_debug") != 0)
    {
        debugMessageCallback = &glDebugMessageCallbackNULL;
        debugMessageControl  = &glDebugMessageControlNULL;
        debugMessageInsert   = &glDebugMessageInsertNULL;
        getDebugMessageLog   = &glGetDebugMessageLogNULL;
        getObjectLabel       = &glGetObjectLabelNULL;
        getObjectPtrLabel    = &glGetObjectPtrLabelNULL;
        getPointerv          = &glGetPointervNULL;
        objectLabel          = &glObjectLabelNULL;
        objectPtrLabel       = &glObjectPtrLabelNULL;
        popDebugGroup        = &glPopDebugGroupNULL;
        pushDebugGroup       = &glPushDebugGroupNULL;
    }

    if (extensions.count("GL_KHR_robustness") != 0)
    {
        getGraphicsResetStatus = &glGetGraphicsResetStatusNULL;
        getnUniformfv          = &glGetnUniformfvNULL;
        getnUniformiv          = &glGetnUniformivNULL;
        getnUniformuiv         = &glGetnUniformuivNULL;
        readnPixels            = &glReadnPixelsNULL;
    }

    if (extensions.count("GL_NV_geometry_program4") != 0)
    {
        framebufferTexture      = &glFramebufferTextureNULL;
        framebufferTextureLayer = &glFramebufferTextureLayerNULL;
    }

    if (extensions.count("GL_NV_vertex_program4") != 0)
    {
        getVertexAttribIiv   = &glGetVertexAttribIivNULL;
        getVertexAttribIuiv  = &glGetVertexAttribIuivNULL;
        vertexAttribI1i      = &glVertexAttribI1iNULL;
        vertexAttribI1iv     = &glVertexAttribI1ivNULL;
        vertexAttribI1ui     = &glVertexAttribI1uiNULL;
        vertexAttribI1uiv    = &glVertexAttribI1uivNULL;
        vertexAttribI2i      = &glVertexAttribI2iNULL;
        vertexAttribI2iv     = &glVertexAttribI2ivNULL;
        vertexAttribI2ui     = &glVertexAttribI2uiNULL;
        vertexAttribI2uiv    = &glVertexAttribI2uivNULL;
        vertexAttribI3i      = &glVertexAttribI3iNULL;
        vertexAttribI3iv     = &glVertexAttribI3ivNULL;
        vertexAttribI3ui     = &glVertexAttribI3uiNULL;
        vertexAttribI3uiv    = &glVertexAttribI3uivNULL;
        vertexAttribI4bv     = &glVertexAttribI4bvNULL;
        vertexAttribI4i      = &glVertexAttribI4iNULL;
        vertexAttribI4iv     = &glVertexAttribI4ivNULL;
        vertexAttribI4sv     = &glVertexAttribI4svNULL;
        vertexAttribI4ubv    = &glVertexAttribI4ubvNULL;
        vertexAttribI4ui     = &glVertexAttribI4uiNULL;
        vertexAttribI4uiv    = &glVertexAttribI4uivNULL;
        vertexAttribI4usv    = &glVertexAttribI4usvNULL;
        vertexAttribIPointer = &glVertexAttribIPointerNULL;
    }

    if (extensions.count("GL_OES_single_precision") != 0)
    {
        clearDepthf = &glClearDepthfNULL;
        depthRangef = &glDepthRangefNULL;
    }

    if (version >= gl::Version(1, 0))
    {
        blendFunc              = &glBlendFuncNULL;
        clear                  = &glClearNULL;
        clearColor             = &glClearColorNULL;
        clearDepth             = &glClearDepthNULL;
        clearStencil           = &glClearStencilNULL;
        colorMask              = &glColorMaskNULL;
        cullFace               = &glCullFaceNULL;
        depthFunc              = &glDepthFuncNULL;
        depthMask              = &glDepthMaskNULL;
        depthRange             = &glDepthRangeNULL;
        disable                = &glDisableNULL;
        drawBuffer             = &glDrawBufferNULL;
        enable                 = &glEnableNULL;
        finish                 = &glFinishNULL;
        flush                  = &glFlushNULL;
        frontFace              = &glFrontFaceNULL;
        getBooleanv            = &glGetBooleanvNULL;
        getDoublev             = &glGetDoublevNULL;
        getError               = &glGetErrorNULL;
        getFloatv              = &glGetFloatvNULL;
        getIntegerv            = &glGetIntegervNULL;
        getString              = &glGetStringNULL;
        getTexImage            = &glGetTexImageNULL;
        getTexLevelParameterfv = &glGetTexLevelParameterfvNULL;
        getTexLevelParameteriv = &glGetTexLevelParameterivNULL;
        getTexParameterfv      = &glGetTexParameterfvNULL;
        getTexParameteriv      = &glGetTexParameterivNULL;
        hint                   = &glHintNULL;
        isEnabled              = &glIsEnabledNULL;
        lineWidth              = &glLineWidthNULL;
        logicOp                = &glLogicOpNULL;
        pixelStoref            = &glPixelStorefNULL;
        pixelStorei            = &glPixelStoreiNULL;
        pointSize              = &glPointSizeNULL;
        polygonMode            = &glPolygonModeNULL;
        readBuffer             = &glReadBufferNULL;
        readPixels             = &glReadPixelsNULL;
        scissor                = &glScissorNULL;
        stencilFunc            = &glStencilFuncNULL;
        stencilMask            = &glStencilMaskNULL;
        stencilOp              = &glStencilOpNULL;
        texImage1D             = &glTexImage1DNULL;
        texImage2D             = &glTexImage2DNULL;
        texParameterf          = &glTexParameterfNULL;
        texParameterfv         = &glTexParameterfvNULL;
        texParameteri          = &glTexParameteriNULL;
        texParameteriv         = &glTexParameterivNULL;
        viewport               = &glViewportNULL;
    }

    if (version >= gl::Version(1, 1))
    {
        bindTexture       = &glBindTextureNULL;
        copyTexImage1D    = &glCopyTexImage1DNULL;
        copyTexImage2D    = &glCopyTexImage2DNULL;
        copyTexSubImage1D = &glCopyTexSubImage1DNULL;
        copyTexSubImage2D = &glCopyTexSubImage2DNULL;
        deleteTextures    = &glDeleteTexturesNULL;
        drawArrays        = &glDrawArraysNULL;
        drawElements      = &glDrawElementsNULL;
        genTextures       = &glGenTexturesNULL;
        isTexture         = &glIsTextureNULL;
        polygonOffset     = &glPolygonOffsetNULL;
        texSubImage1D     = &glTexSubImage1DNULL;
        texSubImage2D     = &glTexSubImage2DNULL;
    }

    if (version >= gl::Version(1, 2))
    {
        copyTexSubImage3D = &glCopyTexSubImage3DNULL;
        drawRangeElements = &glDrawRangeElementsNULL;
        texImage3D        = &glTexImage3DNULL;
        texSubImage3D     = &glTexSubImage3DNULL;
    }

    if (version >= gl::Version(1, 3))
    {
        activeTexture           = &glActiveTextureNULL;
        compressedTexImage1D    = &glCompressedTexImage1DNULL;
        compressedTexImage2D    = &glCompressedTexImage2DNULL;
        compressedTexImage3D    = &glCompressedTexImage3DNULL;
        compressedTexSubImage1D = &glCompressedTexSubImage1DNULL;
        compressedTexSubImage2D = &glCompressedTexSubImage2DNULL;
        compressedTexSubImage3D = &glCompressedTexSubImage3DNULL;
        getCompressedTexImage   = &glGetCompressedTexImageNULL;
        sampleCoverage          = &glSampleCoverageNULL;
    }

    if (version >= gl::Version(1, 4))
    {
        blendColor        = &glBlendColorNULL;
        blendEquation     = &glBlendEquationNULL;
        blendFuncSeparate = &glBlendFuncSeparateNULL;
        multiDrawArrays   = &glMultiDrawArraysNULL;
        multiDrawElements = &glMultiDrawElementsNULL;
        pointParameterf   = &glPointParameterfNULL;
        pointParameterfv  = &glPointParameterfvNULL;
        pointParameteri   = &glPointParameteriNULL;
        pointParameteriv  = &glPointParameterivNULL;
    }

    if (version >= gl::Version(1, 5))
    {
        beginQuery           = &glBeginQueryNULL;
        bindBuffer           = &glBindBufferNULL;
        bufferData           = &glBufferDataNULL;
        bufferSubData        = &glBufferSubDataNULL;
        deleteBuffers        = &glDeleteBuffersNULL;
        deleteQueries        = &glDeleteQueriesNULL;
        endQuery             = &glEndQueryNULL;
        genBuffers           = &glGenBuffersNULL;
        genQueries           = &glGenQueriesNULL;
        getBufferParameteriv = &glGetBufferParameterivNULL;
        getBufferPointerv    = &glGetBufferPointervNULL;
        getBufferSubData     = &glGetBufferSubDataNULL;
        getQueryObjectiv     = &glGetQueryObjectivNULL;
        getQueryObjectuiv    = &glGetQueryObjectuivNULL;
        getQueryiv           = &glGetQueryivNULL;
        isBuffer             = &glIsBufferNULL;
        isQuery              = &glIsQueryNULL;
        mapBuffer            = &glMapBufferNULL;
        unmapBuffer          = &glUnmapBufferNULL;
    }

    if (version >= gl::Version(2, 0))
    {
        attachShader             = &glAttachShaderNULL;
        bindAttribLocation       = &glBindAttribLocationNULL;
        blendEquationSeparate    = &glBlendEquationSeparateNULL;
        compileShader            = &glCompileShaderNULL;
        createProgram            = &glCreateProgramNULL;
        createShader             = &glCreateShaderNULL;
        deleteProgram            = &glDeleteProgramNULL;
        deleteShader             = &glDeleteShaderNULL;
        detachShader             = &glDetachShaderNULL;
        disableVertexAttribArray = &glDisableVertexAttribArrayNULL;
        drawBuffers              = &glDrawBuffersNULL;
        enableVertexAttribArray  = &glEnableVertexAttribArrayNULL;
        getActiveAttrib          = &glGetActiveAttribNULL;
        getActiveUniform         = &glGetActiveUniformNULL;
        getAttachedShaders       = &glGetAttachedShadersNULL;
        getAttribLocation        = &glGetAttribLocationNULL;
        getProgramInfoLog        = &glGetProgramInfoLogNULL;
        getProgramiv             = &glGetProgramivNULL;
        getShaderInfoLog         = &glGetShaderInfoLogNULL;
        getShaderSource          = &glGetShaderSourceNULL;
        getShaderiv              = &glGetShaderivNULL;
        getUniformLocation       = &glGetUniformLocationNULL;
        getUniformfv             = &glGetUniformfvNULL;
        getUniformiv             = &glGetUniformivNULL;
        getVertexAttribPointerv  = &glGetVertexAttribPointervNULL;
        getVertexAttribdv        = &glGetVertexAttribdvNULL;
        getVertexAttribfv        = &glGetVertexAttribfvNULL;
        getVertexAttribiv        = &glGetVertexAttribivNULL;
        isProgram                = &glIsProgramNULL;
        isShader                 = &glIsShaderNULL;
        linkProgram              = &glLinkProgramNULL;
        shaderSource             = &glShaderSourceNULL;
        stencilFuncSeparate      = &glStencilFuncSeparateNULL;
        stencilMaskSeparate      = &glStencilMaskSeparateNULL;
        stencilOpSeparate        = &glStencilOpSeparateNULL;
        uniform1f                = &glUniform1fNULL;
        uniform1fv               = &glUniform1fvNULL;
        uniform1i                = &glUniform1iNULL;
        uniform1iv               = &glUniform1ivNULL;
        uniform2f                = &glUniform2fNULL;
        uniform2fv               = &glUniform2fvNULL;
        uniform2i                = &glUniform2iNULL;
        uniform2iv               = &glUniform2ivNULL;
        uniform3f                = &glUniform3fNULL;
        uniform3fv               = &glUniform3fvNULL;
        uniform3i                = &glUniform3iNULL;
        uniform3iv               = &glUniform3ivNULL;
        uniform4f                = &glUniform4fNULL;
        uniform4fv               = &glUniform4fvNULL;
        uniform4i                = &glUniform4iNULL;
        uniform4iv               = &glUniform4ivNULL;
        uniformMatrix2fv         = &glUniformMatrix2fvNULL;
        uniformMatrix3fv         = &glUniformMatrix3fvNULL;
        uniformMatrix4fv         = &glUniformMatrix4fvNULL;
        useProgram               = &glUseProgramNULL;
        validateProgram          = &glValidateProgramNULL;
        vertexAttrib1d           = &glVertexAttrib1dNULL;
        vertexAttrib1dv          = &glVertexAttrib1dvNULL;
        vertexAttrib1f           = &glVertexAttrib1fNULL;
        vertexAttrib1fv          = &glVertexAttrib1fvNULL;
        vertexAttrib1s           = &glVertexAttrib1sNULL;
        vertexAttrib1sv          = &glVertexAttrib1svNULL;
        vertexAttrib2d           = &glVertexAttrib2dNULL;
        vertexAttrib2dv          = &glVertexAttrib2dvNULL;
        vertexAttrib2f           = &glVertexAttrib2fNULL;
        vertexAttrib2fv          = &glVertexAttrib2fvNULL;
        vertexAttrib2s           = &glVertexAttrib2sNULL;
        vertexAttrib2sv          = &glVertexAttrib2svNULL;
        vertexAttrib3d           = &glVertexAttrib3dNULL;
        vertexAttrib3dv          = &glVertexAttrib3dvNULL;
        vertexAttrib3f           = &glVertexAttrib3fNULL;
        vertexAttrib3fv          = &glVertexAttrib3fvNULL;
        vertexAttrib3s           = &glVertexAttrib3sNULL;
        vertexAttrib3sv          = &glVertexAttrib3svNULL;
        vertexAttrib4Nbv         = &glVertexAttrib4NbvNULL;
        vertexAttrib4Niv         = &glVertexAttrib4NivNULL;
        vertexAttrib4Nsv         = &glVertexAttrib4NsvNULL;
        vertexAttrib4Nub         = &glVertexAttrib4NubNULL;
        vertexAttrib4Nubv        = &glVertexAttrib4NubvNULL;
        vertexAttrib4Nuiv        = &glVertexAttrib4NuivNULL;
        vertexAttrib4Nusv        = &glVertexAttrib4NusvNULL;
        vertexAttrib4bv          = &glVertexAttrib4bvNULL;
        vertexAttrib4d           = &glVertexAttrib4dNULL;
        vertexAttrib4dv          = &glVertexAttrib4dvNULL;
        vertexAttrib4f           = &glVertexAttrib4fNULL;
        vertexAttrib4fv          = &glVertexAttrib4fvNULL;
        vertexAttrib4iv          = &glVertexAttrib4ivNULL;
        vertexAttrib4s           = &glVertexAttrib4sNULL;
        vertexAttrib4sv          = &glVertexAttrib4svNULL;
        vertexAttrib4ubv         = &glVertexAttrib4ubvNULL;
        vertexAttrib4uiv         = &glVertexAttrib4uivNULL;
        vertexAttrib4usv         = &glVertexAttrib4usvNULL;
        vertexAttribPointer      = &glVertexAttribPointerNULL;
    }

    if (version >= gl::Version(2, 1))
    {
        uniformMatrix2x3fv = &glUniformMatrix2x3fvNULL;
        uniformMatrix2x4fv = &glUniformMatrix2x4fvNULL;
        uniformMatrix3x2fv = &glUniformMatrix3x2fvNULL;
        uniformMatrix3x4fv = &glUniformMatrix3x4fvNULL;
        uniformMatrix4x2fv = &glUniformMatrix4x2fvNULL;
        uniformMatrix4x3fv = &glUniformMatrix4x3fvNULL;
    }

    if (version >= gl::Version(3, 0))
    {
        beginConditionalRender              = &glBeginConditionalRenderNULL;
        beginTransformFeedback              = &glBeginTransformFeedbackNULL;
        bindBufferBase                      = &glBindBufferBaseNULL;
        bindBufferRange                     = &glBindBufferRangeNULL;
        bindFragDataLocation                = &glBindFragDataLocationNULL;
        bindFramebuffer                     = &glBindFramebufferNULL;
        bindRenderbuffer                    = &glBindRenderbufferNULL;
        bindVertexArray                     = &glBindVertexArrayNULL;
        blitFramebuffer                     = &glBlitFramebufferNULL;
        checkFramebufferStatus              = &glCheckFramebufferStatusNULL;
        clampColor                          = &glClampColorNULL;
        clearBufferfi                       = &glClearBufferfiNULL;
        clearBufferfv                       = &glClearBufferfvNULL;
        clearBufferiv                       = &glClearBufferivNULL;
        clearBufferuiv                      = &glClearBufferuivNULL;
        colorMaski                          = &glColorMaskiNULL;
        deleteFramebuffers                  = &glDeleteFramebuffersNULL;
        deleteRenderbuffers                 = &glDeleteRenderbuffersNULL;
        deleteVertexArrays                  = &glDeleteVertexArraysNULL;
        disablei                            = &glDisableiNULL;
        enablei                             = &glEnableiNULL;
        endConditionalRender                = &glEndConditionalRenderNULL;
        endTransformFeedback                = &glEndTransformFeedbackNULL;
        flushMappedBufferRange              = &glFlushMappedBufferRangeNULL;
        framebufferRenderbuffer             = &glFramebufferRenderbufferNULL;
        framebufferTexture1D                = &glFramebufferTexture1DNULL;
        framebufferTexture2D                = &glFramebufferTexture2DNULL;
        framebufferTexture3D                = &glFramebufferTexture3DNULL;
        framebufferTextureLayer             = &glFramebufferTextureLayerNULL;
        genFramebuffers                     = &glGenFramebuffersNULL;
        genRenderbuffers                    = &glGenRenderbuffersNULL;
        genVertexArrays                     = &glGenVertexArraysNULL;
        generateMipmap                      = &glGenerateMipmapNULL;
        getBooleani_v                       = &glGetBooleani_vNULL;
        getFragDataLocation                 = &glGetFragDataLocationNULL;
        getFramebufferAttachmentParameteriv = &glGetFramebufferAttachmentParameterivNULL;
        getIntegeri_v                       = &glGetIntegeri_vNULL;
        getRenderbufferParameteriv          = &glGetRenderbufferParameterivNULL;
        getStringi                          = &glGetStringiNULL;
        getTexParameterIiv                  = &glGetTexParameterIivNULL;
        getTexParameterIuiv                 = &glGetTexParameterIuivNULL;
        getTransformFeedbackVarying         = &glGetTransformFeedbackVaryingNULL;
        getUniformuiv                       = &glGetUniformuivNULL;
        getVertexAttribIiv                  = &glGetVertexAttribIivNULL;
        getVertexAttribIuiv                 = &glGetVertexAttribIuivNULL;
        isEnabledi                          = &glIsEnablediNULL;
        isFramebuffer                       = &glIsFramebufferNULL;
        isRenderbuffer                      = &glIsRenderbufferNULL;
        isVertexArray                       = &glIsVertexArrayNULL;
        mapBufferRange                      = &glMapBufferRangeNULL;
        renderbufferStorage                 = &glRenderbufferStorageNULL;
        renderbufferStorageMultisample      = &glRenderbufferStorageMultisampleNULL;
        texParameterIiv                     = &glTexParameterIivNULL;
        texParameterIuiv                    = &glTexParameterIuivNULL;
        transformFeedbackVaryings           = &glTransformFeedbackVaryingsNULL;
        uniform1ui                          = &glUniform1uiNULL;
        uniform1uiv                         = &glUniform1uivNULL;
        uniform2ui                          = &glUniform2uiNULL;
        uniform2uiv                         = &glUniform2uivNULL;
        uniform3ui                          = &glUniform3uiNULL;
        uniform3uiv                         = &glUniform3uivNULL;
        uniform4ui                          = &glUniform4uiNULL;
        uniform4uiv                         = &glUniform4uivNULL;
        vertexAttribI1i                     = &glVertexAttribI1iNULL;
        vertexAttribI1iv                    = &glVertexAttribI1ivNULL;
        vertexAttribI1ui                    = &glVertexAttribI1uiNULL;
        vertexAttribI1uiv                   = &glVertexAttribI1uivNULL;
        vertexAttribI2i                     = &glVertexAttribI2iNULL;
        vertexAttribI2iv                    = &glVertexAttribI2ivNULL;
        vertexAttribI2ui                    = &glVertexAttribI2uiNULL;
        vertexAttribI2uiv                   = &glVertexAttribI2uivNULL;
        vertexAttribI3i                     = &glVertexAttribI3iNULL;
        vertexAttribI3iv                    = &glVertexAttribI3ivNULL;
        vertexAttribI3ui                    = &glVertexAttribI3uiNULL;
        vertexAttribI3uiv                   = &glVertexAttribI3uivNULL;
        vertexAttribI4bv                    = &glVertexAttribI4bvNULL;
        vertexAttribI4i                     = &glVertexAttribI4iNULL;
        vertexAttribI4iv                    = &glVertexAttribI4ivNULL;
        vertexAttribI4sv                    = &glVertexAttribI4svNULL;
        vertexAttribI4ubv                   = &glVertexAttribI4ubvNULL;
        vertexAttribI4ui                    = &glVertexAttribI4uiNULL;
        vertexAttribI4uiv                   = &glVertexAttribI4uivNULL;
        vertexAttribI4usv                   = &glVertexAttribI4usvNULL;
        vertexAttribIPointer                = &glVertexAttribIPointerNULL;
    }

    if (version >= gl::Version(3, 1))
    {
        copyBufferSubData         = &glCopyBufferSubDataNULL;
        drawArraysInstanced       = &glDrawArraysInstancedNULL;
        drawElementsInstanced     = &glDrawElementsInstancedNULL;
        getActiveUniformBlockName = &glGetActiveUniformBlockNameNULL;
        getActiveUniformBlockiv   = &glGetActiveUniformBlockivNULL;
        getActiveUniformName      = &glGetActiveUniformNameNULL;
        getActiveUniformsiv       = &glGetActiveUniformsivNULL;
        getUniformBlockIndex      = &glGetUniformBlockIndexNULL;
        getUniformIndices         = &glGetUniformIndicesNULL;
        primitiveRestartIndex     = &glPrimitiveRestartIndexNULL;
        texBuffer                 = &glTexBufferNULL;
        uniformBlockBinding       = &glUniformBlockBindingNULL;
    }

    if (version >= gl::Version(3, 2))
    {
        clientWaitSync                  = &glClientWaitSyncNULL;
        deleteSync                      = &glDeleteSyncNULL;
        drawElementsBaseVertex          = &glDrawElementsBaseVertexNULL;
        drawElementsInstancedBaseVertex = &glDrawElementsInstancedBaseVertexNULL;
        drawRangeElementsBaseVertex     = &glDrawRangeElementsBaseVertexNULL;
        fenceSync                       = &glFenceSyncNULL;
        framebufferTexture              = &glFramebufferTextureNULL;
        getBufferParameteri64v          = &glGetBufferParameteri64vNULL;
        getInteger64i_v                 = &glGetInteger64i_vNULL;
        getInteger64v                   = &glGetInteger64vNULL;
        getMultisamplefv                = &glGetMultisamplefvNULL;
        getSynciv                       = &glGetSyncivNULL;
        isSync                          = &glIsSyncNULL;
        multiDrawElementsBaseVertex     = &glMultiDrawElementsBaseVertexNULL;
        provokingVertex                 = &glProvokingVertexNULL;
        sampleMaski                     = &glSampleMaskiNULL;
        texImage2DMultisample           = &glTexImage2DMultisampleNULL;
        texImage3DMultisample           = &glTexImage3DMultisampleNULL;
        waitSync                        = &glWaitSyncNULL;
    }

    if (version >= gl::Version(3, 3))
    {
        bindFragDataLocationIndexed = &glBindFragDataLocationIndexedNULL;
        bindSampler                 = &glBindSamplerNULL;
        deleteSamplers              = &glDeleteSamplersNULL;
        genSamplers                 = &glGenSamplersNULL;
        getFragDataIndex            = &glGetFragDataIndexNULL;
        getQueryObjecti64v          = &glGetQueryObjecti64vNULL;
        getQueryObjectui64v         = &glGetQueryObjectui64vNULL;
        getSamplerParameterIiv      = &glGetSamplerParameterIivNULL;
        getSamplerParameterIuiv     = &glGetSamplerParameterIuivNULL;
        getSamplerParameterfv       = &glGetSamplerParameterfvNULL;
        getSamplerParameteriv       = &glGetSamplerParameterivNULL;
        isSampler                   = &glIsSamplerNULL;
        queryCounter                = &glQueryCounterNULL;
        samplerParameterIiv         = &glSamplerParameterIivNULL;
        samplerParameterIuiv        = &glSamplerParameterIuivNULL;
        samplerParameterf           = &glSamplerParameterfNULL;
        samplerParameterfv          = &glSamplerParameterfvNULL;
        samplerParameteri           = &glSamplerParameteriNULL;
        samplerParameteriv          = &glSamplerParameterivNULL;
        vertexAttribDivisor         = &glVertexAttribDivisorNULL;
        vertexAttribP1ui            = &glVertexAttribP1uiNULL;
        vertexAttribP1uiv           = &glVertexAttribP1uivNULL;
        vertexAttribP2ui            = &glVertexAttribP2uiNULL;
        vertexAttribP2uiv           = &glVertexAttribP2uivNULL;
        vertexAttribP3ui            = &glVertexAttribP3uiNULL;
        vertexAttribP3uiv           = &glVertexAttribP3uivNULL;
        vertexAttribP4ui            = &glVertexAttribP4uiNULL;
        vertexAttribP4uiv           = &glVertexAttribP4uivNULL;
    }

    if (version >= gl::Version(4, 0))
    {
        beginQueryIndexed              = &glBeginQueryIndexedNULL;
        bindTransformFeedback          = &glBindTransformFeedbackNULL;
        blendEquationSeparatei         = &glBlendEquationSeparateiNULL;
        blendEquationi                 = &glBlendEquationiNULL;
        blendFuncSeparatei             = &glBlendFuncSeparateiNULL;
        blendFunci                     = &glBlendFunciNULL;
        deleteTransformFeedbacks       = &glDeleteTransformFeedbacksNULL;
        drawArraysIndirect             = &glDrawArraysIndirectNULL;
        drawElementsIndirect           = &glDrawElementsIndirectNULL;
        drawTransformFeedback          = &glDrawTransformFeedbackNULL;
        drawTransformFeedbackStream    = &glDrawTransformFeedbackStreamNULL;
        endQueryIndexed                = &glEndQueryIndexedNULL;
        genTransformFeedbacks          = &glGenTransformFeedbacksNULL;
        getActiveSubroutineName        = &glGetActiveSubroutineNameNULL;
        getActiveSubroutineUniformName = &glGetActiveSubroutineUniformNameNULL;
        getActiveSubroutineUniformiv   = &glGetActiveSubroutineUniformivNULL;
        getProgramStageiv              = &glGetProgramStageivNULL;
        getQueryIndexediv              = &glGetQueryIndexedivNULL;
        getSubroutineIndex             = &glGetSubroutineIndexNULL;
        getSubroutineUniformLocation   = &glGetSubroutineUniformLocationNULL;
        getUniformSubroutineuiv        = &glGetUniformSubroutineuivNULL;
        getUniformdv                   = &glGetUniformdvNULL;
        isTransformFeedback            = &glIsTransformFeedbackNULL;
        minSampleShading               = &glMinSampleShadingNULL;
        patchParameterfv               = &glPatchParameterfvNULL;
        patchParameteri                = &glPatchParameteriNULL;
        pauseTransformFeedback         = &glPauseTransformFeedbackNULL;
        resumeTransformFeedback        = &glResumeTransformFeedbackNULL;
        uniform1d                      = &glUniform1dNULL;
        uniform1dv                     = &glUniform1dvNULL;
        uniform2d                      = &glUniform2dNULL;
        uniform2dv                     = &glUniform2dvNULL;
        uniform3d                      = &glUniform3dNULL;
        uniform3dv                     = &glUniform3dvNULL;
        uniform4d                      = &glUniform4dNULL;
        uniform4dv                     = &glUniform4dvNULL;
        uniformMatrix2dv               = &glUniformMatrix2dvNULL;
        uniformMatrix2x3dv             = &glUniformMatrix2x3dvNULL;
        uniformMatrix2x4dv             = &glUniformMatrix2x4dvNULL;
        uniformMatrix3dv               = &glUniformMatrix3dvNULL;
        uniformMatrix3x2dv             = &glUniformMatrix3x2dvNULL;
        uniformMatrix3x4dv             = &glUniformMatrix3x4dvNULL;
        uniformMatrix4dv               = &glUniformMatrix4dvNULL;
        uniformMatrix4x2dv             = &glUniformMatrix4x2dvNULL;
        uniformMatrix4x3dv             = &glUniformMatrix4x3dvNULL;
        uniformSubroutinesuiv          = &glUniformSubroutinesuivNULL;
    }

    if (version >= gl::Version(4, 1))
    {
        activeShaderProgram       = &glActiveShaderProgramNULL;
        bindProgramPipeline       = &glBindProgramPipelineNULL;
        clearDepthf               = &glClearDepthfNULL;
        createShaderProgramv      = &glCreateShaderProgramvNULL;
        deleteProgramPipelines    = &glDeleteProgramPipelinesNULL;
        depthRangeArrayv          = &glDepthRangeArrayvNULL;
        depthRangeIndexed         = &glDepthRangeIndexedNULL;
        depthRangef               = &glDepthRangefNULL;
        genProgramPipelines       = &glGenProgramPipelinesNULL;
        getDoublei_v              = &glGetDoublei_vNULL;
        getFloati_v               = &glGetFloati_vNULL;
        getProgramBinary          = &glGetProgramBinaryNULL;
        getProgramPipelineInfoLog = &glGetProgramPipelineInfoLogNULL;
        getProgramPipelineiv      = &glGetProgramPipelineivNULL;
        getShaderPrecisionFormat  = &glGetShaderPrecisionFormatNULL;
        getVertexAttribLdv        = &glGetVertexAttribLdvNULL;
        isProgramPipeline         = &glIsProgramPipelineNULL;
        programBinary             = &glProgramBinaryNULL;
        programParameteri         = &glProgramParameteriNULL;
        programUniform1d          = &glProgramUniform1dNULL;
        programUniform1dv         = &glProgramUniform1dvNULL;
        programUniform1f          = &glProgramUniform1fNULL;
        programUniform1fv         = &glProgramUniform1fvNULL;
        programUniform1i          = &glProgramUniform1iNULL;
        programUniform1iv         = &glProgramUniform1ivNULL;
        programUniform1ui         = &glProgramUniform1uiNULL;
        programUniform1uiv        = &glProgramUniform1uivNULL;
        programUniform2d          = &glProgramUniform2dNULL;
        programUniform2dv         = &glProgramUniform2dvNULL;
        programUniform2f          = &glProgramUniform2fNULL;
        programUniform2fv         = &glProgramUniform2fvNULL;
        programUniform2i          = &glProgramUniform2iNULL;
        programUniform2iv         = &glProgramUniform2ivNULL;
        programUniform2ui         = &glProgramUniform2uiNULL;
        programUniform2uiv        = &glProgramUniform2uivNULL;
        programUniform3d          = &glProgramUniform3dNULL;
        programUniform3dv         = &glProgramUniform3dvNULL;
        programUniform3f          = &glProgramUniform3fNULL;
        programUniform3fv         = &glProgramUniform3fvNULL;
        programUniform3i          = &glProgramUniform3iNULL;
        programUniform3iv         = &glProgramUniform3ivNULL;
        programUniform3ui         = &glProgramUniform3uiNULL;
        programUniform3uiv        = &glProgramUniform3uivNULL;
        programUniform4d          = &glProgramUniform4dNULL;
        programUniform4dv         = &glProgramUniform4dvNULL;
        programUniform4f          = &glProgramUniform4fNULL;
        programUniform4fv         = &glProgramUniform4fvNULL;
        programUniform4i          = &glProgramUniform4iNULL;
        programUniform4iv         = &glProgramUniform4ivNULL;
        programUniform4ui         = &glProgramUniform4uiNULL;
        programUniform4uiv        = &glProgramUniform4uivNULL;
        programUniformMatrix2dv   = &glProgramUniformMatrix2dvNULL;
        programUniformMatrix2fv   = &glProgramUniformMatrix2fvNULL;
        programUniformMatrix2x3dv = &glProgramUniformMatrix2x3dvNULL;
        programUniformMatrix2x3fv = &glProgramUniformMatrix2x3fvNULL;
        programUniformMatrix2x4dv = &glProgramUniformMatrix2x4dvNULL;
        programUniformMatrix2x4fv = &glProgramUniformMatrix2x4fvNULL;
        programUniformMatrix3dv   = &glProgramUniformMatrix3dvNULL;
        programUniformMatrix3fv   = &glProgramUniformMatrix3fvNULL;
        programUniformMatrix3x2dv = &glProgramUniformMatrix3x2dvNULL;
        programUniformMatrix3x2fv = &glProgramUniformMatrix3x2fvNULL;
        programUniformMatrix3x4dv = &glProgramUniformMatrix3x4dvNULL;
        programUniformMatrix3x4fv = &glProgramUniformMatrix3x4fvNULL;
        programUniformMatrix4dv   = &glProgramUniformMatrix4dvNULL;
        programUniformMatrix4fv   = &glProgramUniformMatrix4fvNULL;
        programUniformMatrix4x2dv = &glProgramUniformMatrix4x2dvNULL;
        programUniformMatrix4x2fv = &glProgramUniformMatrix4x2fvNULL;
        programUniformMatrix4x3dv = &glProgramUniformMatrix4x3dvNULL;
        programUniformMatrix4x3fv = &glProgramUniformMatrix4x3fvNULL;
        releaseShaderCompiler     = &glReleaseShaderCompilerNULL;
        scissorArrayv             = &glScissorArrayvNULL;
        scissorIndexed            = &glScissorIndexedNULL;
        scissorIndexedv           = &glScissorIndexedvNULL;
        shaderBinary              = &glShaderBinaryNULL;
        useProgramStages          = &glUseProgramStagesNULL;
        validateProgramPipeline   = &glValidateProgramPipelineNULL;
        vertexAttribL1d           = &glVertexAttribL1dNULL;
        vertexAttribL1dv          = &glVertexAttribL1dvNULL;
        vertexAttribL2d           = &glVertexAttribL2dNULL;
        vertexAttribL2dv          = &glVertexAttribL2dvNULL;
        vertexAttribL3d           = &glVertexAttribL3dNULL;
        vertexAttribL3dv          = &glVertexAttribL3dvNULL;
        vertexAttribL4d           = &glVertexAttribL4dNULL;
        vertexAttribL4dv          = &glVertexAttribL4dvNULL;
        vertexAttribLPointer      = &glVertexAttribLPointerNULL;
        viewportArrayv            = &glViewportArrayvNULL;
        viewportIndexedf          = &glViewportIndexedfNULL;
        viewportIndexedfv         = &glViewportIndexedfvNULL;
    }

    if (version >= gl::Version(4, 2))
    {
        bindImageTexture                  = &glBindImageTextureNULL;
        drawArraysInstancedBaseInstance   = &glDrawArraysInstancedBaseInstanceNULL;
        drawElementsInstancedBaseInstance = &glDrawElementsInstancedBaseInstanceNULL;
        drawElementsInstancedBaseVertexBaseInstance =
            &glDrawElementsInstancedBaseVertexBaseInstanceNULL;
        drawTransformFeedbackInstanced       = &glDrawTransformFeedbackInstancedNULL;
        drawTransformFeedbackStreamInstanced = &glDrawTransformFeedbackStreamInstancedNULL;
        getActiveAtomicCounterBufferiv       = &glGetActiveAtomicCounterBufferivNULL;
        getInternalformativ                  = &glGetInternalformativNULL;
        memoryBarrier                        = &glMemoryBarrierNULL;
        texStorage1D                         = &glTexStorage1DNULL;
        texStorage2D                         = &glTexStorage2DNULL;
        texStorage3D                         = &glTexStorage3DNULL;
    }

    if (version >= gl::Version(4, 3))
    {
        bindVertexBuffer                = &glBindVertexBufferNULL;
        clearBufferData                 = &glClearBufferDataNULL;
        clearBufferSubData              = &glClearBufferSubDataNULL;
        copyImageSubData                = &glCopyImageSubDataNULL;
        debugMessageCallback            = &glDebugMessageCallbackNULL;
        debugMessageControl             = &glDebugMessageControlNULL;
        debugMessageInsert              = &glDebugMessageInsertNULL;
        dispatchCompute                 = &glDispatchComputeNULL;
        dispatchComputeIndirect         = &glDispatchComputeIndirectNULL;
        framebufferParameteri           = &glFramebufferParameteriNULL;
        getDebugMessageLog              = &glGetDebugMessageLogNULL;
        getFramebufferParameteriv       = &glGetFramebufferParameterivNULL;
        getInternalformati64v           = &glGetInternalformati64vNULL;
        getObjectLabel                  = &glGetObjectLabelNULL;
        getObjectPtrLabel               = &glGetObjectPtrLabelNULL;
        getPointerv                     = &glGetPointervNULL;
        getProgramInterfaceiv           = &glGetProgramInterfaceivNULL;
        getProgramResourceIndex         = &glGetProgramResourceIndexNULL;
        getProgramResourceLocation      = &glGetProgramResourceLocationNULL;
        getProgramResourceLocationIndex = &glGetProgramResourceLocationIndexNULL;
        getProgramResourceName          = &glGetProgramResourceNameNULL;
        getProgramResourceiv            = &glGetProgramResourceivNULL;
        invalidateBufferData            = &glInvalidateBufferDataNULL;
        invalidateBufferSubData         = &glInvalidateBufferSubDataNULL;
        invalidateFramebuffer           = &glInvalidateFramebufferNULL;
        invalidateSubFramebuffer        = &glInvalidateSubFramebufferNULL;
        invalidateTexImage              = &glInvalidateTexImageNULL;
        invalidateTexSubImage           = &glInvalidateTexSubImageNULL;
        multiDrawArraysIndirect         = &glMultiDrawArraysIndirectNULL;
        multiDrawElementsIndirect       = &glMultiDrawElementsIndirectNULL;
        objectLabel                     = &glObjectLabelNULL;
        objectPtrLabel                  = &glObjectPtrLabelNULL;
        popDebugGroup                   = &glPopDebugGroupNULL;
        pushDebugGroup                  = &glPushDebugGroupNULL;
        shaderStorageBlockBinding       = &glShaderStorageBlockBindingNULL;
        texBufferRange                  = &glTexBufferRangeNULL;
        texStorage2DMultisample         = &glTexStorage2DMultisampleNULL;
        texStorage3DMultisample         = &glTexStorage3DMultisampleNULL;
        textureView                     = &glTextureViewNULL;
        vertexAttribBinding             = &glVertexAttribBindingNULL;
        vertexAttribFormat              = &glVertexAttribFormatNULL;
        vertexAttribIFormat             = &glVertexAttribIFormatNULL;
        vertexAttribLFormat             = &glVertexAttribLFormatNULL;
        vertexBindingDivisor            = &glVertexBindingDivisorNULL;
    }

    if (version >= gl::Version(4, 4))
    {
        bindBuffersBase   = &glBindBuffersBaseNULL;
        bindBuffersRange  = &glBindBuffersRangeNULL;
        bindImageTextures = &glBindImageTexturesNULL;
        bindSamplers      = &glBindSamplersNULL;
        bindTextures      = &glBindTexturesNULL;
        bindVertexBuffers = &glBindVertexBuffersNULL;
        bufferStorage     = &glBufferStorageNULL;
        clearTexImage     = &glClearTexImageNULL;
        clearTexSubImage  = &glClearTexSubImageNULL;
    }

    if (version >= gl::Version(4, 5))
    {
        bindTextureUnit                          = &glBindTextureUnitNULL;
        blitNamedFramebuffer                     = &glBlitNamedFramebufferNULL;
        checkNamedFramebufferStatus              = &glCheckNamedFramebufferStatusNULL;
        clearNamedBufferData                     = &glClearNamedBufferDataNULL;
        clearNamedBufferSubData                  = &glClearNamedBufferSubDataNULL;
        clearNamedFramebufferfi                  = &glClearNamedFramebufferfiNULL;
        clearNamedFramebufferfv                  = &glClearNamedFramebufferfvNULL;
        clearNamedFramebufferiv                  = &glClearNamedFramebufferivNULL;
        clearNamedFramebufferuiv                 = &glClearNamedFramebufferuivNULL;
        clipControl                              = &glClipControlNULL;
        compressedTextureSubImage1D              = &glCompressedTextureSubImage1DNULL;
        compressedTextureSubImage2D              = &glCompressedTextureSubImage2DNULL;
        compressedTextureSubImage3D              = &glCompressedTextureSubImage3DNULL;
        copyNamedBufferSubData                   = &glCopyNamedBufferSubDataNULL;
        copyTextureSubImage1D                    = &glCopyTextureSubImage1DNULL;
        copyTextureSubImage2D                    = &glCopyTextureSubImage2DNULL;
        copyTextureSubImage3D                    = &glCopyTextureSubImage3DNULL;
        createBuffers                            = &glCreateBuffersNULL;
        createFramebuffers                       = &glCreateFramebuffersNULL;
        createProgramPipelines                   = &glCreateProgramPipelinesNULL;
        createQueries                            = &glCreateQueriesNULL;
        createRenderbuffers                      = &glCreateRenderbuffersNULL;
        createSamplers                           = &glCreateSamplersNULL;
        createTextures                           = &glCreateTexturesNULL;
        createTransformFeedbacks                 = &glCreateTransformFeedbacksNULL;
        createVertexArrays                       = &glCreateVertexArraysNULL;
        disableVertexArrayAttrib                 = &glDisableVertexArrayAttribNULL;
        enableVertexArrayAttrib                  = &glEnableVertexArrayAttribNULL;
        flushMappedNamedBufferRange              = &glFlushMappedNamedBufferRangeNULL;
        generateTextureMipmap                    = &glGenerateTextureMipmapNULL;
        getCompressedTextureImage                = &glGetCompressedTextureImageNULL;
        getCompressedTextureSubImage             = &glGetCompressedTextureSubImageNULL;
        getGraphicsResetStatus                   = &glGetGraphicsResetStatusNULL;
        getNamedBufferParameteri64v              = &glGetNamedBufferParameteri64vNULL;
        getNamedBufferParameteriv                = &glGetNamedBufferParameterivNULL;
        getNamedBufferPointerv                   = &glGetNamedBufferPointervNULL;
        getNamedBufferSubData                    = &glGetNamedBufferSubDataNULL;
        getNamedFramebufferAttachmentParameteriv = &glGetNamedFramebufferAttachmentParameterivNULL;
        getNamedFramebufferParameteriv           = &glGetNamedFramebufferParameterivNULL;
        getNamedRenderbufferParameteriv          = &glGetNamedRenderbufferParameterivNULL;
        getQueryBufferObjecti64v                 = &glGetQueryBufferObjecti64vNULL;
        getQueryBufferObjectiv                   = &glGetQueryBufferObjectivNULL;
        getQueryBufferObjectui64v                = &glGetQueryBufferObjectui64vNULL;
        getQueryBufferObjectuiv                  = &glGetQueryBufferObjectuivNULL;
        getTextureImage                          = &glGetTextureImageNULL;
        getTextureLevelParameterfv               = &glGetTextureLevelParameterfvNULL;
        getTextureLevelParameteriv               = &glGetTextureLevelParameterivNULL;
        getTextureParameterIiv                   = &glGetTextureParameterIivNULL;
        getTextureParameterIuiv                  = &glGetTextureParameterIuivNULL;
        getTextureParameterfv                    = &glGetTextureParameterfvNULL;
        getTextureParameteriv                    = &glGetTextureParameterivNULL;
        getTextureSubImage                       = &glGetTextureSubImageNULL;
        getTransformFeedbacki64_v                = &glGetTransformFeedbacki64_vNULL;
        getTransformFeedbacki_v                  = &glGetTransformFeedbacki_vNULL;
        getTransformFeedbackiv                   = &glGetTransformFeedbackivNULL;
        getVertexArrayIndexed64iv                = &glGetVertexArrayIndexed64ivNULL;
        getVertexArrayIndexediv                  = &glGetVertexArrayIndexedivNULL;
        getVertexArrayiv                         = &glGetVertexArrayivNULL;
        getnCompressedTexImage                   = &glGetnCompressedTexImageNULL;
        getnTexImage                             = &glGetnTexImageNULL;
        getnUniformdv                            = &glGetnUniformdvNULL;
        getnUniformfv                            = &glGetnUniformfvNULL;
        getnUniformiv                            = &glGetnUniformivNULL;
        getnUniformuiv                           = &glGetnUniformuivNULL;
        invalidateNamedFramebufferData           = &glInvalidateNamedFramebufferDataNULL;
        invalidateNamedFramebufferSubData        = &glInvalidateNamedFramebufferSubDataNULL;
        mapNamedBuffer                           = &glMapNamedBufferNULL;
        mapNamedBufferRange                      = &glMapNamedBufferRangeNULL;
        memoryBarrierByRegion                    = &glMemoryBarrierByRegionNULL;
        namedBufferData                          = &glNamedBufferDataNULL;
        namedBufferStorage                       = &glNamedBufferStorageNULL;
        namedBufferSubData                       = &glNamedBufferSubDataNULL;
        namedFramebufferDrawBuffer               = &glNamedFramebufferDrawBufferNULL;
        namedFramebufferDrawBuffers              = &glNamedFramebufferDrawBuffersNULL;
        namedFramebufferParameteri               = &glNamedFramebufferParameteriNULL;
        namedFramebufferReadBuffer               = &glNamedFramebufferReadBufferNULL;
        namedFramebufferRenderbuffer             = &glNamedFramebufferRenderbufferNULL;
        namedFramebufferTexture                  = &glNamedFramebufferTextureNULL;
        namedFramebufferTextureLayer             = &glNamedFramebufferTextureLayerNULL;
        namedRenderbufferStorage                 = &glNamedRenderbufferStorageNULL;
        namedRenderbufferStorageMultisample      = &glNamedRenderbufferStorageMultisampleNULL;
        readnPixels                              = &glReadnPixelsNULL;
        textureBarrier                           = &glTextureBarrierNULL;
        textureBuffer                            = &glTextureBufferNULL;
        textureBufferRange                       = &glTextureBufferRangeNULL;
        textureParameterIiv                      = &glTextureParameterIivNULL;
        textureParameterIuiv                     = &glTextureParameterIuivNULL;
        textureParameterf                        = &glTextureParameterfNULL;
        textureParameterfv                       = &glTextureParameterfvNULL;
        textureParameteri                        = &glTextureParameteriNULL;
        textureParameteriv                       = &glTextureParameterivNULL;
        textureStorage1D                         = &glTextureStorage1DNULL;
        textureStorage2D                         = &glTextureStorage2DNULL;
        textureStorage2DMultisample              = &glTextureStorage2DMultisampleNULL;
        textureStorage3D                         = &glTextureStorage3DNULL;
        textureStorage3DMultisample              = &glTextureStorage3DMultisampleNULL;
        textureSubImage1D                        = &glTextureSubImage1DNULL;
        textureSubImage2D                        = &glTextureSubImage2DNULL;
        textureSubImage3D                        = &glTextureSubImage3DNULL;
        transformFeedbackBufferBase              = &glTransformFeedbackBufferBaseNULL;
        transformFeedbackBufferRange             = &glTransformFeedbackBufferRangeNULL;
        unmapNamedBuffer                         = &glUnmapNamedBufferNULL;
        vertexArrayAttribBinding                 = &glVertexArrayAttribBindingNULL;
        vertexArrayAttribFormat                  = &glVertexArrayAttribFormatNULL;
        vertexArrayAttribIFormat                 = &glVertexArrayAttribIFormatNULL;
        vertexArrayAttribLFormat                 = &glVertexArrayAttribLFormatNULL;
        vertexArrayBindingDivisor                = &glVertexArrayBindingDivisorNULL;
        vertexArrayElementBuffer                 = &glVertexArrayElementBufferNULL;
        vertexArrayVertexBuffer                  = &glVertexArrayVertexBufferNULL;
        vertexArrayVertexBuffers                 = &glVertexArrayVertexBuffersNULL;
    }
#    endif  // defined(ANGLE_ENABLE_OPENGL_DESKTOP)
}

void DispatchTableGL::initProcsGLESNULL(const gl::Version &version,
                                        const std::set<std::string> &extensions)
{
    if (extensions.count("GL_EXT_base_instance") != 0)
    {
        drawArraysInstancedBaseInstance   = &glDrawArraysInstancedBaseInstanceNULL;
        drawElementsInstancedBaseInstance = &glDrawElementsInstancedBaseInstanceNULL;
        drawElementsInstancedBaseVertexBaseInstance =
            &glDrawElementsInstancedBaseVertexBaseInstanceNULL;
    }

    if (extensions.count("GL_EXT_blend_func_extended") != 0)
    {
        bindFragDataLocation            = &glBindFragDataLocationNULL;
        bindFragDataLocationIndexed     = &glBindFragDataLocationIndexedNULL;
        getFragDataIndex                = &glGetFragDataIndexNULL;
        getProgramResourceLocationIndex = &glGetProgramResourceLocationIndexNULL;
    }

    if (extensions.count("GL_EXT_buffer_storage") != 0)
    {
        bufferStorage = &glBufferStorageNULL;
    }

    if (extensions.count("GL_EXT_clear_texture") != 0)
    {
        clearTexImage    = &glClearTexImageNULL;
        clearTexSubImage = &glClearTexSubImageNULL;
    }

    if (extensions.count("GL_EXT_clip_control") != 0)
    {
        clipControl = &glClipControlNULL;
    }

    if (extensions.count("GL_EXT_copy_image") != 0)
    {
        copyImageSubData = &glCopyImageSubDataNULL;
    }

    if (extensions.count("GL_EXT_discard_framebuffer") != 0)
    {
        discardFramebufferEXT = &glDiscardFramebufferEXTNULL;
    }

    if (extensions.count("GL_EXT_disjoint_timer_query") != 0)
    {
        beginQuery          = &glBeginQueryNULL;
        deleteQueries       = &glDeleteQueriesNULL;
        endQuery            = &glEndQueryNULL;
        genQueries          = &glGenQueriesNULL;
        getInteger64v       = &glGetInteger64vNULL;
        getQueryObjecti64v  = &glGetQueryObjecti64vNULL;
        getQueryObjectiv    = &glGetQueryObjectivNULL;
        getQueryObjectui64v = &glGetQueryObjectui64vNULL;
        getQueryObjectuiv   = &glGetQueryObjectuivNULL;
        getQueryiv          = &glGetQueryivNULL;
        isQuery             = &glIsQueryNULL;
        queryCounter        = &glQueryCounterNULL;
    }

    if (extensions.count("GL_EXT_draw_buffers") != 0)
    {
        drawBuffers = &glDrawBuffersNULL;
    }

    if (extensions.count("GL_EXT_draw_buffers_indexed") != 0)
    {
        blendEquationSeparatei = &glBlendEquationSeparateiNULL;
        blendEquationi         = &glBlendEquationiNULL;
        blendFuncSeparatei     = &glBlendFuncSeparateiNULL;
        blendFunci             = &glBlendFunciNULL;
        colorMaski             = &glColorMaskiNULL;
        disablei               = &glDisableiNULL;
        enablei                = &glEnableiNULL;
        isEnabledi             = &glIsEnablediNULL;
    }

    if (extensions.count("GL_EXT_draw_elements_base_vertex") != 0)
    {
        drawElementsBaseVertex          = &glDrawElementsBaseVertexNULL;
        drawElementsInstancedBaseVertex = &glDrawElementsInstancedBaseVertexNULL;
        drawRangeElementsBaseVertex     = &glDrawRangeElementsBaseVertexNULL;
        multiDrawElementsBaseVertex     = &glMultiDrawElementsBaseVertexNULL;
    }

    if (extensions.count("GL_EXT_draw_transform_feedback") != 0)
    {
        drawTransformFeedback          = &glDrawTransformFeedbackNULL;
        drawTransformFeedbackInstanced = &glDrawTransformFeedbackInstancedNULL;
    }

    if (extensions.count("GL_EXT_geometry_shader") != 0)
    {
        framebufferTexture = &glFramebufferTextureNULL;
    }

    if (extensions.count("GL_EXT_instanced_arrays") != 0)
    {
        vertexAttribDivisor = &glVertexAttribDivisorNULL;
    }

    if (extensions.count("GL_EXT_map_buffer_range") != 0)
    {
        flushMappedBufferRange = &glFlushMappedBufferRangeNULL;
        mapBufferRange         = &glMapBufferRangeNULL;
    }

    if (extensions.count("GL_EXT_multi_draw_indirect") != 0)
    {
        multiDrawArraysIndirect   = &glMultiDrawArraysIndirectNULL;
        multiDrawElementsIndirect = &glMultiDrawElementsIndirectNULL;
    }

    if (extensions.count("GL_EXT_multisampled_render_to_texture") != 0)
    {
        framebufferTexture2DMultisampleEXT = &glFramebufferTexture2DMultisampleEXTNULL;
        renderbufferStorageMultisample     = &glRenderbufferStorageMultisampleNULL;
        renderbufferStorageMultisampleEXT  = &glRenderbufferStorageMultisampleEXTNULL;
    }

    if (extensions.count("GL_EXT_multiview_draw_buffers") != 0)
    {
        getIntegeri_v = &glGetIntegeri_vNULL;
    }

    if (extensions.count("GL_EXT_occlusion_query_boolean") != 0)
    {
        beginQuery        = &glBeginQueryNULL;
        deleteQueries     = &glDeleteQueriesNULL;
        endQuery          = &glEndQueryNULL;
        genQueries        = &glGenQueriesNULL;
        getQueryObjectuiv = &glGetQueryObjectuivNULL;
        getQueryiv        = &glGetQueryivNULL;
        isQuery           = &glIsQueryNULL;
    }

    if (extensions.count("GL_EXT_primitive_bounding_box") != 0)
    {
        primitiveBoundingBox = &glPrimitiveBoundingBoxNULL;
    }

    if (extensions.count("GL_EXT_robustness") != 0)
    {
        getGraphicsResetStatus = &glGetGraphicsResetStatusNULL;
        getnUniformfv          = &glGetnUniformfvNULL;
        getnUniformiv          = &glGetnUniformivNULL;
        readnPixels            = &glReadnPixelsNULL;
    }

    if (extensions.count("GL_EXT_tessellation_shader") != 0)
    {
        patchParameteri = &glPatchParameteriNULL;
    }

    if (extensions.count("GL_EXT_texture_border_clamp") != 0)
    {
        getSamplerParameterIiv  = &glGetSamplerParameterIivNULL;
        getSamplerParameterIuiv = &glGetSamplerParameterIuivNULL;
        getTexParameterIiv      = &glGetTexParameterIivNULL;
        getTexParameterIuiv     = &glGetTexParameterIuivNULL;
        samplerParameterIiv     = &glSamplerParameterIivNULL;
        samplerParameterIuiv    = &glSamplerParameterIuivNULL;
        texParameterIiv         = &glTexParameterIivNULL;
        texParameterIuiv        = &glTexParameterIuivNULL;
    }

    if (extensions.count("GL_EXT_texture_buffer") != 0)
    {
        texBuffer         = &glTexBufferNULL;
        texBufferEXT      = &glTexBufferEXTNULL;
        texBufferRange    = &glTexBufferRangeNULL;
        texBufferRangeEXT = &glTexBufferRangeEXTNULL;
    }

    if (extensions.count("GL_EXT_texture_storage") != 0)
    {
        texStorage1D     = &glTexStorage1DNULL;
        texStorage2D     = &glTexStorage2DNULL;
        texStorage3D     = &glTexStorage3DNULL;
        textureStorage1D = &glTextureStorage1DNULL;
        textureStorage2D = &glTextureStorage2DNULL;
        textureStorage3D = &glTextureStorage3DNULL;
    }

    if (extensions.count("GL_EXT_texture_view") != 0)
    {
        textureView = &glTextureViewNULL;
    }

    if (extensions.count("GL_IMG_multisampled_render_to_texture") != 0)
    {
        framebufferTexture2DMultisampleIMG = &glFramebufferTexture2DMultisampleIMGNULL;
        renderbufferStorageMultisampleIMG  = &glRenderbufferStorageMultisampleIMGNULL;
    }

    if (extensions.count("GL_KHR_debug") != 0)
    {
        debugMessageCallback = &glDebugMessageCallbackNULL;
        debugMessageControl  = &glDebugMessageControlNULL;
        debugMessageInsert   = &glDebugMessageInsertNULL;
        getDebugMessageLog   = &glGetDebugMessageLogNULL;
        getObjectLabel       = &glGetObjectLabelNULL;
        getObjectPtrLabel    = &glGetObjectPtrLabelNULL;
        getPointerv          = &glGetPointervNULL;
        objectLabel          = &glObjectLabelNULL;
        objectPtrLabel       = &glObjectPtrLabelNULL;
        popDebugGroup        = &glPopDebugGroupNULL;
        pushDebugGroup       = &glPushDebugGroupNULL;
    }

    if (extensions.count("GL_KHR_robustness") != 0)
    {
        getGraphicsResetStatus = &glGetGraphicsResetStatusNULL;
        getnUniformfv          = &glGetnUniformfvNULL;
        getnUniformiv          = &glGetnUniformivNULL;
        getnUniformuiv         = &glGetnUniformuivNULL;
        readnPixels            = &glReadnPixelsNULL;
    }

    if (extensions.count("GL_NV_framebuffer_blit") != 0)
    {
        blitFramebufferNV = &glBlitFramebufferNVNULL;
    }

    if (extensions.count("GL_OES_EGL_image") != 0)
    {
        eGLImageTargetRenderbufferStorageOES = &glEGLImageTargetRenderbufferStorageOESNULL;
        eGLImageTargetTexture2DOES           = &glEGLImageTargetTexture2DOESNULL;
    }

    if (extensions.count("GL_OES_copy_image") != 0)
    {
        copyImageSubData = &glCopyImageSubDataNULL;
    }

    if (extensions.count("GL_OES_draw_buffers_indexed") != 0)
    {
        blendEquationSeparatei = &glBlendEquationSeparateiNULL;
        blendEquationi         = &glBlendEquationiNULL;
        blendFuncSeparatei     = &glBlendFuncSeparateiNULL;
        blendFunci             = &glBlendFunciNULL;
        colorMaski             = &glColorMaskiNULL;
        disablei               = &glDisableiNULL;
        enablei                = &glEnableiNULL;
        isEnabledi             = &glIsEnablediNULL;
    }

    if (extensions.count("GL_OES_draw_elements_base_vertex") != 0)
    {
        drawElementsBaseVertex          = &glDrawElementsBaseVertexNULL;
        drawElementsInstancedBaseVertex = &glDrawElementsInstancedBaseVertexNULL;
        drawRangeElementsBaseVertex     = &glDrawRangeElementsBaseVertexNULL;
        multiDrawElementsBaseVertex     = &glMultiDrawElementsBaseVertexNULL;
    }

    if (extensions.count("GL_OES_geometry_shader") != 0)
    {
        framebufferTexture = &glFramebufferTextureNULL;
    }

    if (extensions.count("GL_OES_get_program_binary") != 0)
    {
        getProgramBinary = &glGetProgramBinaryNULL;
        programBinary    = &glProgramBinaryNULL;
    }

    if (extensions.count("GL_OES_mapbuffer") != 0)
    {
        getBufferPointerv = &glGetBufferPointervNULL;
        mapBuffer         = &glMapBufferNULL;
        unmapBuffer       = &glUnmapBufferNULL;
    }

    if (extensions.count("GL_OES_primitive_bounding_box") != 0)
    {
        primitiveBoundingBox = &glPrimitiveBoundingBoxNULL;
    }

    if (extensions.count("GL_OES_sample_shading") != 0)
    {
        minSampleShading = &glMinSampleShadingNULL;
    }

    if (extensions.count("GL_OES_tessellation_shader") != 0)
    {
        patchParameteri = &glPatchParameteriNULL;
    }

    if (extensions.count("GL_OES_texture_3D") != 0)
    {
        compressedTexImage3D    = &glCompressedTexImage3DNULL;
        compressedTexSubImage3D = &glCompressedTexSubImage3DNULL;
        copyTexSubImage3D       = &glCopyTexSubImage3DNULL;
        framebufferTexture3D    = &glFramebufferTexture3DNULL;
        texImage3D              = &glTexImage3DNULL;
        texSubImage3D           = &glTexSubImage3DNULL;
    }

    if (extensions.count("GL_OES_texture_border_clamp") != 0)
    {
        getSamplerParameterIiv  = &glGetSamplerParameterIivNULL;
        getSamplerParameterIuiv = &glGetSamplerParameterIuivNULL;
        getTexParameterIiv      = &glGetTexParameterIivNULL;
        getTexParameterIuiv     = &glGetTexParameterIuivNULL;
        samplerParameterIiv     = &glSamplerParameterIivNULL;
        samplerParameterIuiv    = &glSamplerParameterIuivNULL;
        texParameterIiv         = &glTexParameterIivNULL;
        texParameterIuiv        = &glTexParameterIuivNULL;
    }

    if (extensions.count("GL_OES_texture_buffer") != 0)
    {
        texBuffer         = &glTexBufferNULL;
        texBufferOES      = &glTexBufferOESNULL;
        texBufferRange    = &glTexBufferRangeNULL;
        texBufferRangeOES = &glTexBufferRangeOESNULL;
    }

    if (extensions.count("GL_OES_texture_storage_multisample_2d_array") != 0)
    {
        texStorage3DMultisample = &glTexStorage3DMultisampleNULL;
    }

    if (extensions.count("GL_OES_texture_view") != 0)
    {
        textureView = &glTextureViewNULL;
    }

    if (extensions.count("GL_OES_vertex_array_object") != 0)
    {
        bindVertexArray    = &glBindVertexArrayNULL;
        deleteVertexArrays = &glDeleteVertexArraysNULL;
        genVertexArrays    = &glGenVertexArraysNULL;
        isVertexArray      = &glIsVertexArrayNULL;
    }

    if (extensions.count("GL_OES_viewport_array") != 0)
    {
        disablei          = &glDisableiNULL;
        enablei           = &glEnableiNULL;
        getFloati_v       = &glGetFloati_vNULL;
        isEnabledi        = &glIsEnablediNULL;
        scissorArrayv     = &glScissorArrayvNULL;
        scissorIndexed    = &glScissorIndexedNULL;
        scissorIndexedv   = &glScissorIndexedvNULL;
        viewportArrayv    = &glViewportArrayvNULL;
        viewportIndexedf  = &glViewportIndexedfNULL;
        viewportIndexedfv = &glViewportIndexedfvNULL;
    }

    if (version >= gl::Version(2, 0))
    {
        activeTexture                       = &glActiveTextureNULL;
        attachShader                        = &glAttachShaderNULL;
        bindAttribLocation                  = &glBindAttribLocationNULL;
        bindBuffer                          = &glBindBufferNULL;
        bindFramebuffer                     = &glBindFramebufferNULL;
        bindRenderbuffer                    = &glBindRenderbufferNULL;
        bindTexture                         = &glBindTextureNULL;
        blendColor                          = &glBlendColorNULL;
        blendEquation                       = &glBlendEquationNULL;
        blendEquationSeparate               = &glBlendEquationSeparateNULL;
        blendFunc                           = &glBlendFuncNULL;
        blendFuncSeparate                   = &glBlendFuncSeparateNULL;
        bufferData                          = &glBufferDataNULL;
        bufferSubData                       = &glBufferSubDataNULL;
        checkFramebufferStatus              = &glCheckFramebufferStatusNULL;
        clear                               = &glClearNULL;
        clearColor                          = &glClearColorNULL;
        clearDepthf                         = &glClearDepthfNULL;
        clearStencil                        = &glClearStencilNULL;
        colorMask                           = &glColorMaskNULL;
        compileShader                       = &glCompileShaderNULL;
        compressedTexImage2D                = &glCompressedTexImage2DNULL;
        compressedTexSubImage2D             = &glCompressedTexSubImage2DNULL;
        copyTexImage2D                      = &glCopyTexImage2DNULL;
        copyTexSubImage2D                   = &glCopyTexSubImage2DNULL;
        createProgram                       = &glCreateProgramNULL;
        createShader                        = &glCreateShaderNULL;
        cullFace                            = &glCullFaceNULL;
        deleteBuffers                       = &glDeleteBuffersNULL;
        deleteFramebuffers                  = &glDeleteFramebuffersNULL;
        deleteProgram                       = &glDeleteProgramNULL;
        deleteRenderbuffers                 = &glDeleteRenderbuffersNULL;
        deleteShader                        = &glDeleteShaderNULL;
        deleteTextures                      = &glDeleteTexturesNULL;
        depthFunc                           = &glDepthFuncNULL;
        depthMask                           = &glDepthMaskNULL;
        depthRangef                         = &glDepthRangefNULL;
        detachShader                        = &glDetachShaderNULL;
        disable                             = &glDisableNULL;
        disableVertexAttribArray            = &glDisableVertexAttribArrayNULL;
        drawArrays                          = &glDrawArraysNULL;
        drawElements                        = &glDrawElementsNULL;
        enable                              = &glEnableNULL;
        enableVertexAttribArray             = &glEnableVertexAttribArrayNULL;
        finish                              = &glFinishNULL;
        flush                               = &glFlushNULL;
        framebufferRenderbuffer             = &glFramebufferRenderbufferNULL;
        framebufferTexture2D                = &glFramebufferTexture2DNULL;
        frontFace                           = &glFrontFaceNULL;
        genBuffers                          = &glGenBuffersNULL;
        genFramebuffers                     = &glGenFramebuffersNULL;
        genRenderbuffers                    = &glGenRenderbuffersNULL;
        genTextures                         = &glGenTexturesNULL;
        generateMipmap                      = &glGenerateMipmapNULL;
        getActiveAttrib                     = &glGetActiveAttribNULL;
        getActiveUniform                    = &glGetActiveUniformNULL;
        getAttachedShaders                  = &glGetAttachedShadersNULL;
        getAttribLocation                   = &glGetAttribLocationNULL;
        getBooleanv                         = &glGetBooleanvNULL;
        getBufferParameteriv                = &glGetBufferParameterivNULL;
        getError                            = &glGetErrorNULL;
        getFloatv                           = &glGetFloatvNULL;
        getFramebufferAttachmentParameteriv = &glGetFramebufferAttachmentParameterivNULL;
        getIntegerv                         = &glGetIntegervNULL;
        getProgramInfoLog                   = &glGetProgramInfoLogNULL;
        getProgramiv                        = &glGetProgramivNULL;
        getRenderbufferParameteriv          = &glGetRenderbufferParameterivNULL;
        getShaderInfoLog                    = &glGetShaderInfoLogNULL;
        getShaderPrecisionFormat            = &glGetShaderPrecisionFormatNULL;
        getShaderSource                     = &glGetShaderSourceNULL;
        getShaderiv                         = &glGetShaderivNULL;
        getString                           = &glGetStringNULL;
        getTexParameterfv                   = &glGetTexParameterfvNULL;
        getTexParameteriv                   = &glGetTexParameterivNULL;
        getUniformLocation                  = &glGetUniformLocationNULL;
        getUniformfv                        = &glGetUniformfvNULL;
        getUniformiv                        = &glGetUniformivNULL;
        getVertexAttribPointerv             = &glGetVertexAttribPointervNULL;
        getVertexAttribfv                   = &glGetVertexAttribfvNULL;
        getVertexAttribiv                   = &glGetVertexAttribivNULL;
        hint                                = &glHintNULL;
        isBuffer                            = &glIsBufferNULL;
        isEnabled                           = &glIsEnabledNULL;
        isFramebuffer                       = &glIsFramebufferNULL;
        isProgram                           = &glIsProgramNULL;
        isRenderbuffer                      = &glIsRenderbufferNULL;
        isShader                            = &glIsShaderNULL;
        isTexture                           = &glIsTextureNULL;
        lineWidth                           = &glLineWidthNULL;
        linkProgram                         = &glLinkProgramNULL;
        pixelStorei                         = &glPixelStoreiNULL;
        polygonOffset                       = &glPolygonOffsetNULL;
        readPixels                          = &glReadPixelsNULL;
        releaseShaderCompiler               = &glReleaseShaderCompilerNULL;
        renderbufferStorage                 = &glRenderbufferStorageNULL;
        sampleCoverage                      = &glSampleCoverageNULL;
        scissor                             = &glScissorNULL;
        shaderBinary                        = &glShaderBinaryNULL;
        shaderSource                        = &glShaderSourceNULL;
        stencilFunc                         = &glStencilFuncNULL;
        stencilFuncSeparate                 = &glStencilFuncSeparateNULL;
        stencilMask                         = &glStencilMaskNULL;
        stencilMaskSeparate                 = &glStencilMaskSeparateNULL;
        stencilOp                           = &glStencilOpNULL;
        stencilOpSeparate                   = &glStencilOpSeparateNULL;
        texImage2D                          = &glTexImage2DNULL;
        texParameterf                       = &glTexParameterfNULL;
        texParameterfv                      = &glTexParameterfvNULL;
        texParameteri                       = &glTexParameteriNULL;
        texParameteriv                      = &glTexParameterivNULL;
        texSubImage2D                       = &glTexSubImage2DNULL;
        uniform1f                           = &glUniform1fNULL;
        uniform1fv                          = &glUniform1fvNULL;
        uniform1i                           = &glUniform1iNULL;
        uniform1iv                          = &glUniform1ivNULL;
        uniform2f                           = &glUniform2fNULL;
        uniform2fv                          = &glUniform2fvNULL;
        uniform2i                           = &glUniform2iNULL;
        uniform2iv                          = &glUniform2ivNULL;
        uniform3f                           = &glUniform3fNULL;
        uniform3fv                          = &glUniform3fvNULL;
        uniform3i                           = &glUniform3iNULL;
        uniform3iv                          = &glUniform3ivNULL;
        uniform4f                           = &glUniform4fNULL;
        uniform4fv                          = &glUniform4fvNULL;
        uniform4i                           = &glUniform4iNULL;
        uniform4iv                          = &glUniform4ivNULL;
        uniformMatrix2fv                    = &glUniformMatrix2fvNULL;
        uniformMatrix3fv                    = &glUniformMatrix3fvNULL;
        uniformMatrix4fv                    = &glUniformMatrix4fvNULL;
        useProgram                          = &glUseProgramNULL;
        validateProgram                     = &glValidateProgramNULL;
        vertexAttrib1f                      = &glVertexAttrib1fNULL;
        vertexAttrib1fv                     = &glVertexAttrib1fvNULL;
        vertexAttrib2f                      = &glVertexAttrib2fNULL;
        vertexAttrib2fv                     = &glVertexAttrib2fvNULL;
        vertexAttrib3f                      = &glVertexAttrib3fNULL;
        vertexAttrib3fv                     = &glVertexAttrib3fvNULL;
        vertexAttrib4f                      = &glVertexAttrib4fNULL;
        vertexAttrib4fv                     = &glVertexAttrib4fvNULL;
        vertexAttribPointer                 = &glVertexAttribPointerNULL;
        viewport                            = &glViewportNULL;
    }

    if (version >= gl::Version(3, 0))
    {
        beginQuery                     = &glBeginQueryNULL;
        beginTransformFeedback         = &glBeginTransformFeedbackNULL;
        bindBufferBase                 = &glBindBufferBaseNULL;
        bindBufferRange                = &glBindBufferRangeNULL;
        bindSampler                    = &glBindSamplerNULL;
        bindTransformFeedback          = &glBindTransformFeedbackNULL;
        bindVertexArray                = &glBindVertexArrayNULL;
        blitFramebuffer                = &glBlitFramebufferNULL;
        clearBufferfi                  = &glClearBufferfiNULL;
        clearBufferfv                  = &glClearBufferfvNULL;
        clearBufferiv                  = &glClearBufferivNULL;
        clearBufferuiv                 = &glClearBufferuivNULL;
        clientWaitSync                 = &glClientWaitSyncNULL;
        compressedTexImage3D           = &glCompressedTexImage3DNULL;
        compressedTexSubImage3D        = &glCompressedTexSubImage3DNULL;
        copyBufferSubData              = &glCopyBufferSubDataNULL;
        copyTexSubImage3D              = &glCopyTexSubImage3DNULL;
        deleteQueries                  = &glDeleteQueriesNULL;
        deleteSamplers                 = &glDeleteSamplersNULL;
        deleteSync                     = &glDeleteSyncNULL;
        deleteTransformFeedbacks       = &glDeleteTransformFeedbacksNULL;
        deleteVertexArrays             = &glDeleteVertexArraysNULL;
        drawArraysInstanced            = &glDrawArraysInstancedNULL;
        drawBuffers                    = &glDrawBuffersNULL;
        drawElementsInstanced          = &glDrawElementsInstancedNULL;
        drawRangeElements              = &glDrawRangeElementsNULL;
        endQuery                       = &glEndQueryNULL;
        endTransformFeedback           = &glEndTransformFeedbackNULL;
        fenceSync                      = &glFenceSyncNULL;
        flushMappedBufferRange         = &glFlushMappedBufferRangeNULL;
        framebufferTextureLayer        = &glFramebufferTextureLayerNULL;
        genQueries                     = &glGenQueriesNULL;
        genSamplers                    = &glGenSamplersNULL;
        genTransformFeedbacks          = &glGenTransformFeedbacksNULL;
        genVertexArrays                = &glGenVertexArraysNULL;
        getActiveUniformBlockName      = &glGetActiveUniformBlockNameNULL;
        getActiveUniformBlockiv        = &glGetActiveUniformBlockivNULL;
        getActiveUniformsiv            = &glGetActiveUniformsivNULL;
        getBufferParameteri64v         = &glGetBufferParameteri64vNULL;
        getBufferPointerv              = &glGetBufferPointervNULL;
        getFragDataLocation            = &glGetFragDataLocationNULL;
        getInteger64i_v                = &glGetInteger64i_vNULL;
        getInteger64v                  = &glGetInteger64vNULL;
        getIntegeri_v                  = &glGetIntegeri_vNULL;
        getInternalformativ            = &glGetInternalformativNULL;
        getProgramBinary               = &glGetProgramBinaryNULL;
        getQueryObjectuiv              = &glGetQueryObjectuivNULL;
        getQueryiv                     = &glGetQueryivNULL;
        getSamplerParameterfv          = &glGetSamplerParameterfvNULL;
        getSamplerParameteriv          = &glGetSamplerParameterivNULL;
        getStringi                     = &glGetStringiNULL;
        getSynciv                      = &glGetSyncivNULL;
        getTransformFeedbackVarying    = &glGetTransformFeedbackVaryingNULL;
        getUniformBlockIndex           = &glGetUniformBlockIndexNULL;
        getUniformIndices              = &glGetUniformIndicesNULL;
        getUniformuiv                  = &glGetUniformuivNULL;
        getVertexAttribIiv             = &glGetVertexAttribIivNULL;
        getVertexAttribIuiv            = &glGetVertexAttribIuivNULL;
        invalidateFramebuffer          = &glInvalidateFramebufferNULL;
        invalidateSubFramebuffer       = &glInvalidateSubFramebufferNULL;
        isQuery                        = &glIsQueryNULL;
        isSampler                      = &glIsSamplerNULL;
        isSync                         = &glIsSyncNULL;
        isTransformFeedback            = &glIsTransformFeedbackNULL;
        isVertexArray                  = &glIsVertexArrayNULL;
        mapBufferRange                 = &glMapBufferRangeNULL;
        pauseTransformFeedback         = &glPauseTransformFeedbackNULL;
        programBinary                  = &glProgramBinaryNULL;
        programParameteri              = &glProgramParameteriNULL;
        readBuffer                     = &glReadBufferNULL;
        renderbufferStorageMultisample = &glRenderbufferStorageMultisampleNULL;
        resumeTransformFeedback        = &glResumeTransformFeedbackNULL;
        samplerParameterf              = &glSamplerParameterfNULL;
        samplerParameterfv             = &glSamplerParameterfvNULL;
        samplerParameteri              = &glSamplerParameteriNULL;
        samplerParameteriv             = &glSamplerParameterivNULL;
        texImage3D                     = &glTexImage3DNULL;
        texStorage2D                   = &glTexStorage2DNULL;
        texStorage3D                   = &glTexStorage3DNULL;
        texSubImage3D                  = &glTexSubImage3DNULL;
        transformFeedbackVaryings      = &glTransformFeedbackVaryingsNULL;
        uniform1ui                     = &glUniform1uiNULL;
        uniform1uiv                    = &glUniform1uivNULL;
        uniform2ui                     = &glUniform2uiNULL;
        uniform2uiv                    = &glUniform2uivNULL;
        uniform3ui                     = &glUniform3uiNULL;
        uniform3uiv                    = &glUniform3uivNULL;
        uniform4ui                     = &glUniform4uiNULL;
        uniform4uiv                    = &glUniform4uivNULL;
        uniformBlockBinding            = &glUniformBlockBindingNULL;
        uniformMatrix2x3fv             = &glUniformMatrix2x3fvNULL;
        uniformMatrix2x4fv             = &glUniformMatrix2x4fvNULL;
        uniformMatrix3x2fv             = &glUniformMatrix3x2fvNULL;
        uniformMatrix3x4fv             = &glUniformMatrix3x4fvNULL;
        uniformMatrix4x2fv             = &glUniformMatrix4x2fvNULL;
        uniformMatrix4x3fv             = &glUniformMatrix4x3fvNULL;
        unmapBuffer                    = &glUnmapBufferNULL;
        vertexAttribDivisor            = &glVertexAttribDivisorNULL;
        vertexAttribI4i                = &glVertexAttribI4iNULL;
        vertexAttribI4iv               = &glVertexAttribI4ivNULL;
        vertexAttribI4ui               = &glVertexAttribI4uiNULL;
        vertexAttribI4uiv              = &glVertexAttribI4uivNULL;
        vertexAttribIPointer           = &glVertexAttribIPointerNULL;
        waitSync                       = &glWaitSyncNULL;
    }

    if (version >= gl::Version(3, 1))
    {
        activeShaderProgram        = &glActiveShaderProgramNULL;
        bindImageTexture           = &glBindImageTextureNULL;
        bindProgramPipeline        = &glBindProgramPipelineNULL;
        bindVertexBuffer           = &glBindVertexBufferNULL;
        createShaderProgramv       = &glCreateShaderProgramvNULL;
        deleteProgramPipelines     = &glDeleteProgramPipelinesNULL;
        dispatchCompute            = &glDispatchComputeNULL;
        dispatchComputeIndirect    = &glDispatchComputeIndirectNULL;
        drawArraysIndirect         = &glDrawArraysIndirectNULL;
        drawElementsIndirect       = &glDrawElementsIndirectNULL;
        framebufferParameteri      = &glFramebufferParameteriNULL;
        genProgramPipelines        = &glGenProgramPipelinesNULL;
        getBooleani_v              = &glGetBooleani_vNULL;
        getFramebufferParameteriv  = &glGetFramebufferParameterivNULL;
        getMultisamplefv           = &glGetMultisamplefvNULL;
        getProgramInterfaceiv      = &glGetProgramInterfaceivNULL;
        getProgramPipelineInfoLog  = &glGetProgramPipelineInfoLogNULL;
        getProgramPipelineiv       = &glGetProgramPipelineivNULL;
        getProgramResourceIndex    = &glGetProgramResourceIndexNULL;
        getProgramResourceLocation = &glGetProgramResourceLocationNULL;
        getProgramResourceName     = &glGetProgramResourceNameNULL;
        getProgramResourceiv       = &glGetProgramResourceivNULL;
        getTexLevelParameterfv     = &glGetTexLevelParameterfvNULL;
        getTexLevelParameteriv     = &glGetTexLevelParameterivNULL;
        isProgramPipeline          = &glIsProgramPipelineNULL;
        memoryBarrier              = &glMemoryBarrierNULL;
        memoryBarrierByRegion      = &glMemoryBarrierByRegionNULL;
        programUniform1f           = &glProgramUniform1fNULL;
        programUniform1fv          = &glProgramUniform1fvNULL;
        programUniform1i           = &glProgramUniform1iNULL;
        programUniform1iv          = &glProgramUniform1ivNULL;
        programUniform1ui          = &glProgramUniform1uiNULL;
        programUniform1uiv         = &glProgramUniform1uivNULL;
        programUniform2f           = &glProgramUniform2fNULL;
        programUniform2fv          = &glProgramUniform2fvNULL;
        programUniform2i           = &glProgramUniform2iNULL;
        programUniform2iv          = &glProgramUniform2ivNULL;
        programUniform2ui          = &glProgramUniform2uiNULL;
        programUniform2uiv         = &glProgramUniform2uivNULL;
        programUniform3f           = &glProgramUniform3fNULL;
        programUniform3fv          = &glProgramUniform3fvNULL;
        programUniform3i           = &glProgramUniform3iNULL;
        programUniform3iv          = &glProgramUniform3ivNULL;
        programUniform3ui          = &glProgramUniform3uiNULL;
        programUniform3uiv         = &glProgramUniform3uivNULL;
        programUniform4f           = &glProgramUniform4fNULL;
        programUniform4fv          = &glProgramUniform4fvNULL;
        programUniform4i           = &glProgramUniform4iNULL;
        programUniform4iv          = &glProgramUniform4ivNULL;
        programUniform4ui          = &glProgramUniform4uiNULL;
        programUniform4uiv         = &glProgramUniform4uivNULL;
        programUniformMatrix2fv    = &glProgramUniformMatrix2fvNULL;
        programUniformMatrix2x3fv  = &glProgramUniformMatrix2x3fvNULL;
        programUniformMatrix2x4fv  = &glProgramUniformMatrix2x4fvNULL;
        programUniformMatrix3fv    = &glProgramUniformMatrix3fvNULL;
        programUniformMatrix3x2fv  = &glProgramUniformMatrix3x2fvNULL;
        programUniformMatrix3x4fv  = &glProgramUniformMatrix3x4fvNULL;
        programUniformMatrix4fv    = &glProgramUniformMatrix4fvNULL;
        programUniformMatrix4x2fv  = &glProgramUniformMatrix4x2fvNULL;
        programUniformMatrix4x3fv  = &glProgramUniformMatrix4x3fvNULL;
        sampleMaski                = &glSampleMaskiNULL;
        texStorage2DMultisample    = &glTexStorage2DMultisampleNULL;
        useProgramStages           = &glUseProgramStagesNULL;
        validateProgramPipeline    = &glValidateProgramPipelineNULL;
        vertexAttribBinding        = &glVertexAttribBindingNULL;
        vertexAttribFormat         = &glVertexAttribFormatNULL;
        vertexAttribIFormat        = &glVertexAttribIFormatNULL;
        vertexBindingDivisor       = &glVertexBindingDivisorNULL;
    }

    if (version >= gl::Version(3, 2))
    {
        blendBarrier                    = &glBlendBarrierNULL;
        blendEquationSeparatei          = &glBlendEquationSeparateiNULL;
        blendEquationi                  = &glBlendEquationiNULL;
        blendFuncSeparatei              = &glBlendFuncSeparateiNULL;
        blendFunci                      = &glBlendFunciNULL;
        colorMaski                      = &glColorMaskiNULL;
        copyImageSubData                = &glCopyImageSubDataNULL;
        debugMessageCallback            = &glDebugMessageCallbackNULL;
        debugMessageControl             = &glDebugMessageControlNULL;
        debugMessageInsert              = &glDebugMessageInsertNULL;
        disablei                        = &glDisableiNULL;
        drawElementsBaseVertex          = &glDrawElementsBaseVertexNULL;
        drawElementsInstancedBaseVertex = &glDrawElementsInstancedBaseVertexNULL;
        drawRangeElementsBaseVertex     = &glDrawRangeElementsBaseVertexNULL;
        enablei                         = &glEnableiNULL;
        framebufferTexture              = &glFramebufferTextureNULL;
        getDebugMessageLog              = &glGetDebugMessageLogNULL;
        getGraphicsResetStatus          = &glGetGraphicsResetStatusNULL;
        getObjectLabel                  = &glGetObjectLabelNULL;
        getObjectPtrLabel               = &glGetObjectPtrLabelNULL;
        getPointerv                     = &glGetPointervNULL;
        getSamplerParameterIiv          = &glGetSamplerParameterIivNULL;
        getSamplerParameterIuiv         = &glGetSamplerParameterIuivNULL;
        getTexParameterIiv              = &glGetTexParameterIivNULL;
        getTexParameterIuiv             = &glGetTexParameterIuivNULL;
        getnUniformfv                   = &glGetnUniformfvNULL;
        getnUniformiv                   = &glGetnUniformivNULL;
        getnUniformuiv                  = &glGetnUniformuivNULL;
        isEnabledi                      = &glIsEnablediNULL;
        minSampleShading                = &glMinSampleShadingNULL;
        objectLabel                     = &glObjectLabelNULL;
        objectPtrLabel                  = &glObjectPtrLabelNULL;
        patchParameteri                 = &glPatchParameteriNULL;
        popDebugGroup                   = &glPopDebugGroupNULL;
        primitiveBoundingBox            = &glPrimitiveBoundingBoxNULL;
        pushDebugGroup                  = &glPushDebugGroupNULL;
        readnPixels                     = &glReadnPixelsNULL;
        samplerParameterIiv             = &glSamplerParameterIivNULL;
        samplerParameterIuiv            = &glSamplerParameterIuivNULL;
        texBuffer                       = &glTexBufferNULL;
        texBufferRange                  = &glTexBufferRangeNULL;
        texParameterIiv                 = &glTexParameterIivNULL;
        texParameterIuiv                = &glTexParameterIuivNULL;
        texStorage3DMultisample         = &glTexStorage3DMultisampleNULL;
    }
}

void DispatchTableGL::initProcsSharedExtensionsNULL(const std::set<std::string> &extensions)
{
    if (extensions.count("GL_ARB_sync") != 0)
    {
        clientWaitSync = &glClientWaitSyncNULL;
        deleteSync     = &glDeleteSyncNULL;
        fenceSync      = &glFenceSyncNULL;
        getInteger64v  = &glGetInteger64vNULL;
        getSynciv      = &glGetSyncivNULL;
        isSync         = &glIsSyncNULL;
        waitSync       = &glWaitSyncNULL;
    }

    if (extensions.count("GL_EXT_blend_minmax") != 0)
    {
        blendEquation = &glBlendEquationNULL;
    }

    if (extensions.count("GL_EXT_debug_label") != 0)
    {
        getObjectLabel = &glGetObjectLabelNULL;
    }

    if (extensions.count("GL_EXT_debug_marker") != 0)
    {
        insertEventMarkerEXT = &glInsertEventMarkerEXTNULL;
        popGroupMarkerEXT    = &glPopGroupMarkerEXTNULL;
        pushGroupMarkerEXT   = &glPushGroupMarkerEXTNULL;
    }

    if (extensions.count("GL_EXT_draw_instanced") != 0)
    {
        drawArraysInstanced   = &glDrawArraysInstancedNULL;
        drawElementsInstanced = &glDrawElementsInstancedNULL;
    }

    if (extensions.count("GL_EXT_memory_object") != 0)
    {
        bufferStorageMemEXT               = &glBufferStorageMemEXTNULL;
        createMemoryObjectsEXT            = &glCreateMemoryObjectsEXTNULL;
        deleteMemoryObjectsEXT            = &glDeleteMemoryObjectsEXTNULL;
        getMemoryObjectParameterivEXT     = &glGetMemoryObjectParameterivEXTNULL;
        getUnsignedBytei_vEXT             = &glGetUnsignedBytei_vEXTNULL;
        getUnsignedBytevEXT               = &glGetUnsignedBytevEXTNULL;
        isMemoryObjectEXT                 = &glIsMemoryObjectEXTNULL;
        memoryObjectParameterivEXT        = &glMemoryObjectParameterivEXTNULL;
        namedBufferStorageMemEXT          = &glNamedBufferStorageMemEXTNULL;
        texStorageMem2DEXT                = &glTexStorageMem2DEXTNULL;
        texStorageMem2DMultisampleEXT     = &glTexStorageMem2DMultisampleEXTNULL;
        texStorageMem3DEXT                = &glTexStorageMem3DEXTNULL;
        texStorageMem3DMultisampleEXT     = &glTexStorageMem3DMultisampleEXTNULL;
        textureStorageMem2DEXT            = &glTextureStorageMem2DEXTNULL;
        textureStorageMem2DMultisampleEXT = &glTextureStorageMem2DMultisampleEXTNULL;
        textureStorageMem3DEXT            = &glTextureStorageMem3DEXTNULL;
        textureStorageMem3DMultisampleEXT = &glTextureStorageMem3DMultisampleEXTNULL;
    }

    if (extensions.count("GL_EXT_memory_object_fd") != 0)
    {
        importMemoryFdEXT = &glImportMemoryFdEXTNULL;
    }

    if (extensions.count("GL_EXT_memory_object_win32") != 0)
    {
        importMemoryWin32HandleEXT = &glImportMemoryWin32HandleEXTNULL;
        importMemoryWin32NameEXT   = &glImportMemoryWin32NameEXTNULL;
    }

    if (extensions.count("GL_EXT_multi_draw_arrays") != 0)
    {
        multiDrawArrays   = &glMultiDrawArraysNULL;
        multiDrawElements = &glMultiDrawElementsNULL;
    }

    if (extensions.count("GL_EXT_semaphore") != 0)
    {
        deleteSemaphoresEXT           = &glDeleteSemaphoresEXTNULL;
        genSemaphoresEXT              = &glGenSemaphoresEXTNULL;
        getSemaphoreParameterui64vEXT = &glGetSemaphoreParameterui64vEXTNULL;
        getUnsignedBytei_vEXT         = &glGetUnsignedBytei_vEXTNULL;
        getUnsignedBytevEXT           = &glGetUnsignedBytevEXTNULL;
        isSemaphoreEXT                = &glIsSemaphoreEXTNULL;
        semaphoreParameterui64vEXT    = &glSemaphoreParameterui64vEXTNULL;
        signalSemaphoreEXT            = &glSignalSemaphoreEXTNULL;
        waitSemaphoreEXT              = &glWaitSemaphoreEXTNULL;
    }

    if (extensions.count("GL_EXT_semaphore_fd") != 0)
    {
        importSemaphoreFdEXT = &glImportSemaphoreFdEXTNULL;
    }

    if (extensions.count("GL_EXT_semaphore_win32") != 0)
    {
        importSemaphoreWin32HandleEXT = &glImportSemaphoreWin32HandleEXTNULL;
        importSemaphoreWin32NameEXT   = &glImportSemaphoreWin32NameEXTNULL;
    }

    if (extensions.count("GL_EXT_separate_shader_objects") != 0)
    {
        activeShaderProgram       = &glActiveShaderProgramNULL;
        bindProgramPipeline       = &glBindProgramPipelineNULL;
        createShaderProgramv      = &glCreateShaderProgramvNULL;
        deleteProgramPipelines    = &glDeleteProgramPipelinesNULL;
        genProgramPipelines       = &glGenProgramPipelinesNULL;
        getProgramPipelineInfoLog = &glGetProgramPipelineInfoLogNULL;
        getProgramPipelineiv      = &glGetProgramPipelineivNULL;
        isProgramPipeline         = &glIsProgramPipelineNULL;
        programParameteri         = &glProgramParameteriNULL;
        programUniform1f          = &glProgramUniform1fNULL;
        programUniform1fv         = &glProgramUniform1fvNULL;
        programUniform1i          = &glProgramUniform1iNULL;
        programUniform1iv         = &glProgramUniform1ivNULL;
        programUniform1ui         = &glProgramUniform1uiNULL;
        programUniform1uiv        = &glProgramUniform1uivNULL;
        programUniform2f          = &glProgramUniform2fNULL;
        programUniform2fv         = &glProgramUniform2fvNULL;
        programUniform2i          = &glProgramUniform2iNULL;
        programUniform2iv         = &glProgramUniform2ivNULL;
        programUniform2ui         = &glProgramUniform2uiNULL;
        programUniform2uiv        = &glProgramUniform2uivNULL;
        programUniform3f          = &glProgramUniform3fNULL;
        programUniform3fv         = &glProgramUniform3fvNULL;
        programUniform3i          = &glProgramUniform3iNULL;
        programUniform3iv         = &glProgramUniform3ivNULL;
        programUniform3ui         = &glProgramUniform3uiNULL;
        programUniform3uiv        = &glProgramUniform3uivNULL;
        programUniform4f          = &glProgramUniform4fNULL;
        programUniform4fv         = &glProgramUniform4fvNULL;
        programUniform4i          = &glProgramUniform4iNULL;
        programUniform4iv         = &glProgramUniform4ivNULL;
        programUniform4ui         = &glProgramUniform4uiNULL;
        programUniform4uiv        = &glProgramUniform4uivNULL;
        programUniformMatrix2fv   = &glProgramUniformMatrix2fvNULL;
        programUniformMatrix2x3fv = &glProgramUniformMatrix2x3fvNULL;
        programUniformMatrix2x4fv = &glProgramUniformMatrix2x4fvNULL;
        programUniformMatrix3fv   = &glProgramUniformMatrix3fvNULL;
        programUniformMatrix3x2fv = &glProgramUniformMatrix3x2fvNULL;
        programUniformMatrix3x4fv = &glProgramUniformMatrix3x4fvNULL;
        programUniformMatrix4fv   = &glProgramUniformMatrix4fvNULL;
        programUniformMatrix4x2fv = &glProgramUniformMatrix4x2fvNULL;
        programUniformMatrix4x3fv = &glProgramUniformMatrix4x3fvNULL;
        useProgramStages          = &glUseProgramStagesNULL;
        validateProgramPipeline   = &glValidateProgramPipelineNULL;
    }

    if (extensions.count("GL_KHR_parallel_shader_compile") != 0)
    {
        maxShaderCompilerThreadsKHR = &glMaxShaderCompilerThreadsKHRNULL;
    }

    if (extensions.count("GL_NV_fence") != 0)
    {
        deleteFencesNV = &glDeleteFencesNVNULL;
        finishFenceNV  = &glFinishFenceNVNULL;
        genFencesNV    = &glGenFencesNVNULL;
        getFenceivNV   = &glGetFenceivNVNULL;
        isFenceNV      = &glIsFenceNVNULL;
        setFenceNV     = &glSetFenceNVNULL;
        testFenceNV    = &glTestFenceNVNULL;
    }

    if (extensions.count("GL_NV_framebuffer_mixed_samples") != 0)
    {
        coverageModulationNV = &glCoverageModulationNVNULL;
    }

    if (extensions.count("GL_NV_internalformat_sample_query") != 0)
    {
        getInternalformatSampleivNV = &glGetInternalformatSampleivNVNULL;
    }

    if (extensions.count("GL_OVR_multiview") != 0)
    {
        framebufferTextureMultiviewOVR = &glFramebufferTextureMultiviewOVRNULL;
    }
}
#endif  // defined(ANGLE_ENABLE_OPENGL_NULL)

}  // namespace rx
