//
// /tmp/glm_dispatch.c
//
// Autogenerated from gl.xml
//
// Mike Larson
//
// October 2021
//

#include "mgl.h"

void init_dispatch(GLMContext ctx)
{
    ctx->dispatch.cull_face = mglCullFace;
    ctx->dispatch.front_face = mglFrontFace;
    ctx->dispatch.hint = mglHint;
    ctx->dispatch.line_width = mglLineWidth;
    ctx->dispatch.point_size = mglPointSize;
    ctx->dispatch.polygon_mode = mglPolygonMode;
    ctx->dispatch.scissor = mglScissor;
    ctx->dispatch.tex_parameterf = mglTexParameterf;
    ctx->dispatch.tex_parameterfv = mglTexParameterfv;
    ctx->dispatch.tex_parameteri = mglTexParameteri;
    ctx->dispatch.tex_parameteriv = mglTexParameteriv;
    ctx->dispatch.tex_image1D = mglTexImage1D;
    ctx->dispatch.tex_image2D = mglTexImage2D;
    ctx->dispatch.draw_buffer = mglDrawBuffer;
    ctx->dispatch.clear = mglClear;
    ctx->dispatch.clear_color = mglClearColor;
    ctx->dispatch.clear_stencil = mglClearStencil;
    ctx->dispatch.clear_depth = mglClearDepth;
    ctx->dispatch.stencil_mask = mglStencilMask;
    ctx->dispatch.color_mask = mglColorMask;
    ctx->dispatch.depth_mask = mglDepthMask;
    ctx->dispatch.disable = mglDisable;
    ctx->dispatch.enable = mglEnable;
    ctx->dispatch.finish = mglFinish;
    ctx->dispatch.flush = mglFlush;
    ctx->dispatch.blend_func = mglBlendFunc;
    ctx->dispatch.logic_op = mglLogicOp;
    ctx->dispatch.stencil_func = mglStencilFunc;
    ctx->dispatch.stencil_op = mglStencilOp;
    ctx->dispatch.depth_func = mglDepthFunc;
    ctx->dispatch.pixel_storef = mglPixelStoref;
    ctx->dispatch.pixel_storei = mglPixelStorei;
    ctx->dispatch.read_buffer = mglReadBuffer;
    ctx->dispatch.read_pixels = mglReadPixels;
    ctx->dispatch.get_booleanv = mglGetBooleanv;
    ctx->dispatch.get_doublev = mglGetDoublev;
    ctx->dispatch.get_error = mglGetError;
    ctx->dispatch.get_floatv = mglGetFloatv;
    ctx->dispatch.get_integerv = mglGetIntegerv;
    ctx->dispatch.get_string = mglGetString;
    ctx->dispatch.get_tex_image = mglGetTexImage;
    ctx->dispatch.get_tex_parameterfv = mglGetTexParameterfv;
    ctx->dispatch.get_tex_parameteriv = mglGetTexParameteriv;
    ctx->dispatch.get_tex_level_parameterfv = mglGetTexLevelParameterfv;
    ctx->dispatch.get_tex_level_parameteriv = mglGetTexLevelParameteriv;
    ctx->dispatch.is_enabled = mglIsEnabled;
    ctx->dispatch.depth_range = mglDepthRange;
    ctx->dispatch.viewport = mglViewport;
    ctx->dispatch.new_list = mglNewList;
    ctx->dispatch.end_list = mglEndList;
    ctx->dispatch.call_list = mglCallList;
    ctx->dispatch.call_lists = mglCallLists;
    ctx->dispatch.delete_lists = mglDeleteLists;
    ctx->dispatch.gen_lists = mglGenLists;
    ctx->dispatch.list_base = mglListBase;
    ctx->dispatch.begin = mglBegin;
    ctx->dispatch.bitmap = mglBitmap;
    ctx->dispatch.color3b = mglColor3b;
    ctx->dispatch.color3bv = mglColor3bv;
    ctx->dispatch.color3d = mglColor3d;
    ctx->dispatch.color3dv = mglColor3dv;
    ctx->dispatch.color3f = mglColor3f;
    ctx->dispatch.color3fv = mglColor3fv;
    ctx->dispatch.color3i = mglColor3i;
    ctx->dispatch.color3iv = mglColor3iv;
    ctx->dispatch.color3s = mglColor3s;
    ctx->dispatch.color3sv = mglColor3sv;
    ctx->dispatch.color3ub = mglColor3ub;
    ctx->dispatch.color3ubv = mglColor3ubv;
    ctx->dispatch.color3ui = mglColor3ui;
    ctx->dispatch.color3uiv = mglColor3uiv;
    ctx->dispatch.color3us = mglColor3us;
    ctx->dispatch.color3usv = mglColor3usv;
    ctx->dispatch.color4b = mglColor4b;
    ctx->dispatch.color4bv = mglColor4bv;
    ctx->dispatch.color4d = mglColor4d;
    ctx->dispatch.color4dv = mglColor4dv;
    ctx->dispatch.color4f = mglColor4f;
    ctx->dispatch.color4fv = mglColor4fv;
    ctx->dispatch.color4i = mglColor4i;
    ctx->dispatch.color4iv = mglColor4iv;
    ctx->dispatch.color4s = mglColor4s;
    ctx->dispatch.color4sv = mglColor4sv;
    ctx->dispatch.color4ub = mglColor4ub;
    ctx->dispatch.color4ubv = mglColor4ubv;
    ctx->dispatch.color4ui = mglColor4ui;
    ctx->dispatch.color4uiv = mglColor4uiv;
    ctx->dispatch.color4us = mglColor4us;
    ctx->dispatch.color4usv = mglColor4usv;
    ctx->dispatch.edge_flag = mglEdgeFlag;
    ctx->dispatch.edge_flagv = mglEdgeFlagv;
    ctx->dispatch.end = mglEnd;
    ctx->dispatch.indexd = mglIndexd;
    ctx->dispatch.indexdv = mglIndexdv;
    ctx->dispatch.indexf = mglIndexf;
    ctx->dispatch.indexfv = mglIndexfv;
    ctx->dispatch.indexi = mglIndexi;
    ctx->dispatch.indexiv = mglIndexiv;
    ctx->dispatch.indexs = mglIndexs;
    ctx->dispatch.indexsv = mglIndexsv;
    ctx->dispatch.normal3b = mglNormal3b;
    ctx->dispatch.normal3bv = mglNormal3bv;
    ctx->dispatch.normal3d = mglNormal3d;
    ctx->dispatch.normal3dv = mglNormal3dv;
    ctx->dispatch.normal3f = mglNormal3f;
    ctx->dispatch.normal3fv = mglNormal3fv;
    ctx->dispatch.normal3i = mglNormal3i;
    ctx->dispatch.normal3iv = mglNormal3iv;
    ctx->dispatch.normal3s = mglNormal3s;
    ctx->dispatch.normal3sv = mglNormal3sv;
    ctx->dispatch.raster_pos2d = mglRasterPos2d;
    ctx->dispatch.raster_pos2dv = mglRasterPos2dv;
    ctx->dispatch.raster_pos2f = mglRasterPos2f;
    ctx->dispatch.raster_pos2fv = mglRasterPos2fv;
    ctx->dispatch.raster_pos2i = mglRasterPos2i;
    ctx->dispatch.raster_pos2iv = mglRasterPos2iv;
    ctx->dispatch.raster_pos2s = mglRasterPos2s;
    ctx->dispatch.raster_pos2sv = mglRasterPos2sv;
    ctx->dispatch.raster_pos3d = mglRasterPos3d;
    ctx->dispatch.raster_pos3dv = mglRasterPos3dv;
    ctx->dispatch.raster_pos3f = mglRasterPos3f;
    ctx->dispatch.raster_pos3fv = mglRasterPos3fv;
    ctx->dispatch.raster_pos3i = mglRasterPos3i;
    ctx->dispatch.raster_pos3iv = mglRasterPos3iv;
    ctx->dispatch.raster_pos3s = mglRasterPos3s;
    ctx->dispatch.raster_pos3sv = mglRasterPos3sv;
    ctx->dispatch.raster_pos4d = mglRasterPos4d;
    ctx->dispatch.raster_pos4dv = mglRasterPos4dv;
    ctx->dispatch.raster_pos4f = mglRasterPos4f;
    ctx->dispatch.raster_pos4fv = mglRasterPos4fv;
    ctx->dispatch.raster_pos4i = mglRasterPos4i;
    ctx->dispatch.raster_pos4iv = mglRasterPos4iv;
    ctx->dispatch.raster_pos4s = mglRasterPos4s;
    ctx->dispatch.raster_pos4sv = mglRasterPos4sv;
    ctx->dispatch.rectd = mglRectd;
    ctx->dispatch.rectdv = mglRectdv;
    ctx->dispatch.rectf = mglRectf;
    ctx->dispatch.rectfv = mglRectfv;
    ctx->dispatch.recti = mglRecti;
    ctx->dispatch.rectiv = mglRectiv;
    ctx->dispatch.rects = mglRects;
    ctx->dispatch.rectsv = mglRectsv;
    ctx->dispatch.tex_coord1d = mglTexCoord1d;
    ctx->dispatch.tex_coord1dv = mglTexCoord1dv;
    ctx->dispatch.tex_coord1f = mglTexCoord1f;
    ctx->dispatch.tex_coord1fv = mglTexCoord1fv;
    ctx->dispatch.tex_coord1i = mglTexCoord1i;
    ctx->dispatch.tex_coord1iv = mglTexCoord1iv;
    ctx->dispatch.tex_coord1s = mglTexCoord1s;
    ctx->dispatch.tex_coord1sv = mglTexCoord1sv;
    ctx->dispatch.tex_coord2d = mglTexCoord2d;
    ctx->dispatch.tex_coord2dv = mglTexCoord2dv;
    ctx->dispatch.tex_coord2f = mglTexCoord2f;
    ctx->dispatch.tex_coord2fv = mglTexCoord2fv;
    ctx->dispatch.tex_coord2i = mglTexCoord2i;
    ctx->dispatch.tex_coord2iv = mglTexCoord2iv;
    ctx->dispatch.tex_coord2s = mglTexCoord2s;
    ctx->dispatch.tex_coord2sv = mglTexCoord2sv;
    ctx->dispatch.tex_coord3d = mglTexCoord3d;
    ctx->dispatch.tex_coord3dv = mglTexCoord3dv;
    ctx->dispatch.tex_coord3f = mglTexCoord3f;
    ctx->dispatch.tex_coord3fv = mglTexCoord3fv;
    ctx->dispatch.tex_coord3i = mglTexCoord3i;
    ctx->dispatch.tex_coord3iv = mglTexCoord3iv;
    ctx->dispatch.tex_coord3s = mglTexCoord3s;
    ctx->dispatch.tex_coord3sv = mglTexCoord3sv;
    ctx->dispatch.tex_coord4d = mglTexCoord4d;
    ctx->dispatch.tex_coord4dv = mglTexCoord4dv;
    ctx->dispatch.tex_coord4f = mglTexCoord4f;
    ctx->dispatch.tex_coord4fv = mglTexCoord4fv;
    ctx->dispatch.tex_coord4i = mglTexCoord4i;
    ctx->dispatch.tex_coord4iv = mglTexCoord4iv;
    ctx->dispatch.tex_coord4s = mglTexCoord4s;
    ctx->dispatch.tex_coord4sv = mglTexCoord4sv;
    ctx->dispatch.vertex2d = mglVertex2d;
    ctx->dispatch.vertex2dv = mglVertex2dv;
    ctx->dispatch.vertex2f = mglVertex2f;
    ctx->dispatch.vertex2fv = mglVertex2fv;
    ctx->dispatch.vertex2i = mglVertex2i;
    ctx->dispatch.vertex2iv = mglVertex2iv;
    ctx->dispatch.vertex2s = mglVertex2s;
    ctx->dispatch.vertex2sv = mglVertex2sv;
    ctx->dispatch.vertex3d = mglVertex3d;
    ctx->dispatch.vertex3dv = mglVertex3dv;
    ctx->dispatch.vertex3f = mglVertex3f;
    ctx->dispatch.vertex3fv = mglVertex3fv;
    ctx->dispatch.vertex3i = mglVertex3i;
    ctx->dispatch.vertex3iv = mglVertex3iv;
    ctx->dispatch.vertex3s = mglVertex3s;
    ctx->dispatch.vertex3sv = mglVertex3sv;
    ctx->dispatch.vertex4d = mglVertex4d;
    ctx->dispatch.vertex4dv = mglVertex4dv;
    ctx->dispatch.vertex4f = mglVertex4f;
    ctx->dispatch.vertex4fv = mglVertex4fv;
    ctx->dispatch.vertex4i = mglVertex4i;
    ctx->dispatch.vertex4iv = mglVertex4iv;
    ctx->dispatch.vertex4s = mglVertex4s;
    ctx->dispatch.vertex4sv = mglVertex4sv;
    ctx->dispatch.clip_plane = mglClipPlane;
    ctx->dispatch.color_material = mglColorMaterial;
    ctx->dispatch.fogf = mglFogf;
    ctx->dispatch.fogfv = mglFogfv;
    ctx->dispatch.fogi = mglFogi;
    ctx->dispatch.fogiv = mglFogiv;
    ctx->dispatch.lightf = mglLightf;
    ctx->dispatch.lightfv = mglLightfv;
    ctx->dispatch.lighti = mglLighti;
    ctx->dispatch.lightiv = mglLightiv;
    ctx->dispatch.light_modelf = mglLightModelf;
    ctx->dispatch.light_modelfv = mglLightModelfv;
    ctx->dispatch.light_modeli = mglLightModeli;
    ctx->dispatch.light_modeliv = mglLightModeliv;
    ctx->dispatch.line_stipple = mglLineStipple;
    ctx->dispatch.materialf = mglMaterialf;
    ctx->dispatch.materialfv = mglMaterialfv;
    ctx->dispatch.materiali = mglMateriali;
    ctx->dispatch.materialiv = mglMaterialiv;
    ctx->dispatch.polygon_stipple = mglPolygonStipple;
    ctx->dispatch.shade_model = mglShadeModel;
    ctx->dispatch.tex_envf = mglTexEnvf;
    ctx->dispatch.tex_envfv = mglTexEnvfv;
    ctx->dispatch.tex_envi = mglTexEnvi;
    ctx->dispatch.tex_enviv = mglTexEnviv;
    ctx->dispatch.tex_gend = mglTexGend;
    ctx->dispatch.tex_gendv = mglTexGendv;
    ctx->dispatch.tex_genf = mglTexGenf;
    ctx->dispatch.tex_genfv = mglTexGenfv;
    ctx->dispatch.tex_geni = mglTexGeni;
    ctx->dispatch.tex_geniv = mglTexGeniv;
    ctx->dispatch.feedback_buffer = mglFeedbackBuffer;
    ctx->dispatch.select_buffer = mglSelectBuffer;
    ctx->dispatch.render_mode = mglRenderMode;
    ctx->dispatch.init_names = mglInitNames;
    ctx->dispatch.load_name = mglLoadName;
    ctx->dispatch.pass_through = mglPassThrough;
    ctx->dispatch.pop_name = mglPopName;
    ctx->dispatch.push_name = mglPushName;
    ctx->dispatch.clear_accum = mglClearAccum;
    ctx->dispatch.clear_index = mglClearIndex;
    ctx->dispatch.index_mask = mglIndexMask;
    ctx->dispatch.accum = mglAccum;
    ctx->dispatch.pop_attrib = mglPopAttrib;
    ctx->dispatch.push_attrib = mglPushAttrib;
    ctx->dispatch.map1d = mglMap1d;
    ctx->dispatch.map1f = mglMap1f;
    ctx->dispatch.map2d = mglMap2d;
    ctx->dispatch.map2f = mglMap2f;
    ctx->dispatch.map_grid1d = mglMapGrid1d;
    ctx->dispatch.map_grid1f = mglMapGrid1f;
    ctx->dispatch.map_grid2d = mglMapGrid2d;
    ctx->dispatch.map_grid2f = mglMapGrid2f;
    ctx->dispatch.eval_coord1d = mglEvalCoord1d;
    ctx->dispatch.eval_coord1dv = mglEvalCoord1dv;
    ctx->dispatch.eval_coord1f = mglEvalCoord1f;
    ctx->dispatch.eval_coord1fv = mglEvalCoord1fv;
    ctx->dispatch.eval_coord2d = mglEvalCoord2d;
    ctx->dispatch.eval_coord2dv = mglEvalCoord2dv;
    ctx->dispatch.eval_coord2f = mglEvalCoord2f;
    ctx->dispatch.eval_coord2fv = mglEvalCoord2fv;
    ctx->dispatch.eval_mesh1 = mglEvalMesh1;
    ctx->dispatch.eval_point1 = mglEvalPoint1;
    ctx->dispatch.eval_mesh2 = mglEvalMesh2;
    ctx->dispatch.eval_point2 = mglEvalPoint2;
    ctx->dispatch.alpha_func = mglAlphaFunc;
    ctx->dispatch.pixel_zoom = mglPixelZoom;
    ctx->dispatch.pixel_transferf = mglPixelTransferf;
    ctx->dispatch.pixel_transferi = mglPixelTransferi;
    ctx->dispatch.pixel_mapfv = mglPixelMapfv;
    ctx->dispatch.pixel_mapuiv = mglPixelMapuiv;
    ctx->dispatch.pixel_mapusv = mglPixelMapusv;
    ctx->dispatch.copy_pixels = mglCopyPixels;
    ctx->dispatch.draw_pixels = mglDrawPixels;
    ctx->dispatch.get_clip_plane = mglGetClipPlane;
    ctx->dispatch.get_lightfv = mglGetLightfv;
    ctx->dispatch.get_lightiv = mglGetLightiv;
    ctx->dispatch.get_mapdv = mglGetMapdv;
    ctx->dispatch.get_mapfv = mglGetMapfv;
    ctx->dispatch.get_mapiv = mglGetMapiv;
    ctx->dispatch.get_materialfv = mglGetMaterialfv;
    ctx->dispatch.get_materialiv = mglGetMaterialiv;
    ctx->dispatch.get_pixel_mapfv = mglGetPixelMapfv;
    ctx->dispatch.get_pixel_mapuiv = mglGetPixelMapuiv;
    ctx->dispatch.get_pixel_mapusv = mglGetPixelMapusv;
    ctx->dispatch.get_polygon_stipple = mglGetPolygonStipple;
    ctx->dispatch.get_tex_envfv = mglGetTexEnvfv;
    ctx->dispatch.get_tex_enviv = mglGetTexEnviv;
    ctx->dispatch.get_tex_gendv = mglGetTexGendv;
    ctx->dispatch.get_tex_genfv = mglGetTexGenfv;
    ctx->dispatch.get_tex_geniv = mglGetTexGeniv;
    ctx->dispatch.is_list = mglIsList;
    ctx->dispatch.frustum = mglFrustum;
    ctx->dispatch.load_identity = mglLoadIdentity;
    ctx->dispatch.load_matrixf = mglLoadMatrixf;
    ctx->dispatch.load_matrixd = mglLoadMatrixd;
    ctx->dispatch.matrix_mode = mglMatrixMode;
    ctx->dispatch.mult_matrixf = mglMultMatrixf;
    ctx->dispatch.mult_matrixd = mglMultMatrixd;
    ctx->dispatch.ortho = mglOrtho;
    ctx->dispatch.pop_matrix = mglPopMatrix;
    ctx->dispatch.push_matrix = mglPushMatrix;
    ctx->dispatch.rotated = mglRotated;
    ctx->dispatch.rotatef = mglRotatef;
    ctx->dispatch.scaled = mglScaled;
    ctx->dispatch.scalef = mglScalef;
    ctx->dispatch.translated = mglTranslated;
    ctx->dispatch.translatef = mglTranslatef;
    ctx->dispatch.draw_arrays = mglDrawArrays;
    ctx->dispatch.draw_elements = mglDrawElements;
    ctx->dispatch.get_pointerv = mglGetPointerv;
    ctx->dispatch.polygon_offset = mglPolygonOffset;
    ctx->dispatch.copy_tex_image1D = mglCopyTexImage1D;
    ctx->dispatch.copy_tex_image2D = mglCopyTexImage2D;
    ctx->dispatch.copy_tex_sub_image1D = mglCopyTexSubImage1D;
    ctx->dispatch.copy_tex_sub_image2D = mglCopyTexSubImage2D;
    ctx->dispatch.tex_sub_image1D = mglTexSubImage1D;
    ctx->dispatch.tex_sub_image2D = mglTexSubImage2D;
    ctx->dispatch.bind_texture = mglBindTexture;
    ctx->dispatch.delete_textures = mglDeleteTextures;
    ctx->dispatch.gen_textures = mglGenTextures;
    ctx->dispatch.is_texture = mglIsTexture;
    ctx->dispatch.array_element = mglArrayElement;
    ctx->dispatch.color_pointer = mglColorPointer;
    ctx->dispatch.disable_client_state = mglDisableClientState;
    ctx->dispatch.edge_flag_pointer = mglEdgeFlagPointer;
    ctx->dispatch.enable_client_state = mglEnableClientState;
    ctx->dispatch.index_pointer = mglIndexPointer;
    ctx->dispatch.interleaved_arrays = mglInterleavedArrays;
    ctx->dispatch.normal_pointer = mglNormalPointer;
    ctx->dispatch.tex_coord_pointer = mglTexCoordPointer;
    ctx->dispatch.vertex_pointer = mglVertexPointer;
    ctx->dispatch.are_textures_resident = mglAreTexturesResident;
    ctx->dispatch.prioritize_textures = mglPrioritizeTextures;
    ctx->dispatch.indexub = mglIndexub;
    ctx->dispatch.indexubv = mglIndexubv;
    ctx->dispatch.pop_client_attrib = mglPopClientAttrib;
    ctx->dispatch.push_client_attrib = mglPushClientAttrib;
    ctx->dispatch.draw_range_elements = mglDrawRangeElements;
    ctx->dispatch.tex_image3D = mglTexImage3D;
    ctx->dispatch.tex_sub_image3D = mglTexSubImage3D;
    ctx->dispatch.copy_tex_sub_image3D = mglCopyTexSubImage3D;
    ctx->dispatch.active_texture = mglActiveTexture;
    ctx->dispatch.sample_coverage = mglSampleCoverage;
    ctx->dispatch.compressed_tex_image3D = mglCompressedTexImage3D;
    ctx->dispatch.compressed_tex_image2D = mglCompressedTexImage2D;
    ctx->dispatch.compressed_tex_image1D = mglCompressedTexImage1D;
    ctx->dispatch.compressed_tex_sub_image3D = mglCompressedTexSubImage3D;
    ctx->dispatch.compressed_tex_sub_image2D = mglCompressedTexSubImage2D;
    ctx->dispatch.compressed_tex_sub_image1D = mglCompressedTexSubImage1D;
    ctx->dispatch.get_compressed_tex_image = mglGetCompressedTexImage;
    ctx->dispatch.client_active_texture = mglClientActiveTexture;
    ctx->dispatch.multi_tex_coord1d = mglMultiTexCoord1d;
    ctx->dispatch.multi_tex_coord1dv = mglMultiTexCoord1dv;
    ctx->dispatch.multi_tex_coord1f = mglMultiTexCoord1f;
    ctx->dispatch.multi_tex_coord1fv = mglMultiTexCoord1fv;
    ctx->dispatch.multi_tex_coord1i = mglMultiTexCoord1i;
    ctx->dispatch.multi_tex_coord1iv = mglMultiTexCoord1iv;
    ctx->dispatch.multi_tex_coord1s = mglMultiTexCoord1s;
    ctx->dispatch.multi_tex_coord1sv = mglMultiTexCoord1sv;
    ctx->dispatch.multi_tex_coord2d = mglMultiTexCoord2d;
    ctx->dispatch.multi_tex_coord2dv = mglMultiTexCoord2dv;
    ctx->dispatch.multi_tex_coord2f = mglMultiTexCoord2f;
    ctx->dispatch.multi_tex_coord2fv = mglMultiTexCoord2fv;
    ctx->dispatch.multi_tex_coord2i = mglMultiTexCoord2i;
    ctx->dispatch.multi_tex_coord2iv = mglMultiTexCoord2iv;
    ctx->dispatch.multi_tex_coord2s = mglMultiTexCoord2s;
    ctx->dispatch.multi_tex_coord2sv = mglMultiTexCoord2sv;
    ctx->dispatch.multi_tex_coord3d = mglMultiTexCoord3d;
    ctx->dispatch.multi_tex_coord3dv = mglMultiTexCoord3dv;
    ctx->dispatch.multi_tex_coord3f = mglMultiTexCoord3f;
    ctx->dispatch.multi_tex_coord3fv = mglMultiTexCoord3fv;
    ctx->dispatch.multi_tex_coord3i = mglMultiTexCoord3i;
    ctx->dispatch.multi_tex_coord3iv = mglMultiTexCoord3iv;
    ctx->dispatch.multi_tex_coord3s = mglMultiTexCoord3s;
    ctx->dispatch.multi_tex_coord3sv = mglMultiTexCoord3sv;
    ctx->dispatch.multi_tex_coord4d = mglMultiTexCoord4d;
    ctx->dispatch.multi_tex_coord4dv = mglMultiTexCoord4dv;
    ctx->dispatch.multi_tex_coord4f = mglMultiTexCoord4f;
    ctx->dispatch.multi_tex_coord4fv = mglMultiTexCoord4fv;
    ctx->dispatch.multi_tex_coord4i = mglMultiTexCoord4i;
    ctx->dispatch.multi_tex_coord4iv = mglMultiTexCoord4iv;
    ctx->dispatch.multi_tex_coord4s = mglMultiTexCoord4s;
    ctx->dispatch.multi_tex_coord4sv = mglMultiTexCoord4sv;
    ctx->dispatch.load_transpose_matrixf = mglLoadTransposeMatrixf;
    ctx->dispatch.load_transpose_matrixd = mglLoadTransposeMatrixd;
    ctx->dispatch.mult_transpose_matrixf = mglMultTransposeMatrixf;
    ctx->dispatch.mult_transpose_matrixd = mglMultTransposeMatrixd;
    ctx->dispatch.blend_func_separate = mglBlendFuncSeparate;
    ctx->dispatch.multi_draw_arrays = mglMultiDrawArrays;
    ctx->dispatch.multi_draw_elements = mglMultiDrawElements;
    ctx->dispatch.point_parameterf = mglPointParameterf;
    ctx->dispatch.point_parameterfv = mglPointParameterfv;
    ctx->dispatch.point_parameteri = mglPointParameteri;
    ctx->dispatch.point_parameteriv = mglPointParameteriv;
    ctx->dispatch.fog_coordf = mglFogCoordf;
    ctx->dispatch.fog_coordfv = mglFogCoordfv;
    ctx->dispatch.fog_coordd = mglFogCoordd;
    ctx->dispatch.fog_coorddv = mglFogCoorddv;
    ctx->dispatch.fog_coord_pointer = mglFogCoordPointer;
    ctx->dispatch.secondary_color3b = mglSecondaryColor3b;
    ctx->dispatch.secondary_color3bv = mglSecondaryColor3bv;
    ctx->dispatch.secondary_color3d = mglSecondaryColor3d;
    ctx->dispatch.secondary_color3dv = mglSecondaryColor3dv;
    ctx->dispatch.secondary_color3f = mglSecondaryColor3f;
    ctx->dispatch.secondary_color3fv = mglSecondaryColor3fv;
    ctx->dispatch.secondary_color3i = mglSecondaryColor3i;
    ctx->dispatch.secondary_color3iv = mglSecondaryColor3iv;
    ctx->dispatch.secondary_color3s = mglSecondaryColor3s;
    ctx->dispatch.secondary_color3sv = mglSecondaryColor3sv;
    ctx->dispatch.secondary_color3ub = mglSecondaryColor3ub;
    ctx->dispatch.secondary_color3ubv = mglSecondaryColor3ubv;
    ctx->dispatch.secondary_color3ui = mglSecondaryColor3ui;
    ctx->dispatch.secondary_color3uiv = mglSecondaryColor3uiv;
    ctx->dispatch.secondary_color3us = mglSecondaryColor3us;
    ctx->dispatch.secondary_color3usv = mglSecondaryColor3usv;
    ctx->dispatch.secondary_color_pointer = mglSecondaryColorPointer;
    ctx->dispatch.window_pos2d = mglWindowPos2d;
    ctx->dispatch.window_pos2dv = mglWindowPos2dv;
    ctx->dispatch.window_pos2f = mglWindowPos2f;
    ctx->dispatch.window_pos2fv = mglWindowPos2fv;
    ctx->dispatch.window_pos2i = mglWindowPos2i;
    ctx->dispatch.window_pos2iv = mglWindowPos2iv;
    ctx->dispatch.window_pos2s = mglWindowPos2s;
    ctx->dispatch.window_pos2sv = mglWindowPos2sv;
    ctx->dispatch.window_pos3d = mglWindowPos3d;
    ctx->dispatch.window_pos3dv = mglWindowPos3dv;
    ctx->dispatch.window_pos3f = mglWindowPos3f;
    ctx->dispatch.window_pos3fv = mglWindowPos3fv;
    ctx->dispatch.window_pos3i = mglWindowPos3i;
    ctx->dispatch.window_pos3iv = mglWindowPos3iv;
    ctx->dispatch.window_pos3s = mglWindowPos3s;
    ctx->dispatch.window_pos3sv = mglWindowPos3sv;
    ctx->dispatch.blend_color = mglBlendColor;
    ctx->dispatch.blend_equation = mglBlendEquation;
    ctx->dispatch.gen_queries = mglGenQueries;
    ctx->dispatch.delete_queries = mglDeleteQueries;
    ctx->dispatch.is_query = mglIsQuery;
    ctx->dispatch.begin_query = mglBeginQuery;
    ctx->dispatch.end_query = mglEndQuery;
    ctx->dispatch.get_queryiv = mglGetQueryiv;
    ctx->dispatch.get_query_objectiv = mglGetQueryObjectiv;
    ctx->dispatch.get_query_objectuiv = mglGetQueryObjectuiv;
    ctx->dispatch.bind_buffer = mglBindBuffer;
    ctx->dispatch.delete_buffers = mglDeleteBuffers;
    ctx->dispatch.gen_buffers = mglGenBuffers;
    ctx->dispatch.is_buffer = mglIsBuffer;
    ctx->dispatch.buffer_data = mglBufferData;
    ctx->dispatch.buffer_sub_data = mglBufferSubData;
    ctx->dispatch.get_buffer_sub_data = mglGetBufferSubData;
    ctx->dispatch.map_buffer = mglMapBuffer;
    ctx->dispatch.unmap_buffer = mglUnmapBuffer;
    ctx->dispatch.get_buffer_parameteriv = mglGetBufferParameteriv;
    ctx->dispatch.get_buffer_pointerv = mglGetBufferPointerv;
    ctx->dispatch.blend_equation_separate = mglBlendEquationSeparate;
    ctx->dispatch.draw_buffers = mglDrawBuffers;
    ctx->dispatch.stencil_op_separate = mglStencilOpSeparate;
    ctx->dispatch.stencil_func_separate = mglStencilFuncSeparate;
    ctx->dispatch.stencil_mask_separate = mglStencilMaskSeparate;
    ctx->dispatch.attach_shader = mglAttachShader;
    ctx->dispatch.bind_attrib_location = mglBindAttribLocation;
    ctx->dispatch.compile_shader = mglCompileShader;
    ctx->dispatch.create_program = mglCreateProgram;
    ctx->dispatch.create_shader = mglCreateShader;
    ctx->dispatch.delete_program = mglDeleteProgram;
    ctx->dispatch.delete_shader = mglDeleteShader;
    ctx->dispatch.detach_shader = mglDetachShader;
    ctx->dispatch.disable_vertex_attrib_array = mglDisableVertexAttribArray;
    ctx->dispatch.enable_vertex_attrib_array = mglEnableVertexAttribArray;
    ctx->dispatch.get_active_attrib = mglGetActiveAttrib;
    ctx->dispatch.get_active_uniform = mglGetActiveUniform;
    ctx->dispatch.get_attached_shaders = mglGetAttachedShaders;
    ctx->dispatch.get_attrib_location = mglGetAttribLocation;
    ctx->dispatch.get_programiv = mglGetProgramiv;
    ctx->dispatch.get_program_info_log = mglGetProgramInfoLog;
    ctx->dispatch.get_shaderiv = mglGetShaderiv;
    ctx->dispatch.get_shader_info_log = mglGetShaderInfoLog;
    ctx->dispatch.get_shader_source = mglGetShaderSource;
    ctx->dispatch.get_uniform_location = mglGetUniformLocation;
    ctx->dispatch.get_uniformfv = mglGetUniformfv;
    ctx->dispatch.get_uniformiv = mglGetUniformiv;
    ctx->dispatch.get_vertex_attribdv = mglGetVertexAttribdv;
    ctx->dispatch.get_vertex_attribfv = mglGetVertexAttribfv;
    ctx->dispatch.get_vertex_attribiv = mglGetVertexAttribiv;
    ctx->dispatch.get_vertex_attrib_pointerv = mglGetVertexAttribPointerv;
    ctx->dispatch.is_program = mglIsProgram;
    ctx->dispatch.is_shader = mglIsShader;
    ctx->dispatch.link_program = mglLinkProgram;
    ctx->dispatch.shader_source = mglShaderSource;
    ctx->dispatch.use_program = mglUseProgram;
    ctx->dispatch.uniform1f = mglUniform1f;
    ctx->dispatch.uniform2f = mglUniform2f;
    ctx->dispatch.uniform3f = mglUniform3f;
    ctx->dispatch.uniform4f = mglUniform4f;
    ctx->dispatch.uniform1i = mglUniform1i;
    ctx->dispatch.uniform2i = mglUniform2i;
    ctx->dispatch.uniform3i = mglUniform3i;
    ctx->dispatch.uniform4i = mglUniform4i;
    ctx->dispatch.uniform1fv = mglUniform1fv;
    ctx->dispatch.uniform2fv = mglUniform2fv;
    ctx->dispatch.uniform3fv = mglUniform3fv;
    ctx->dispatch.uniform4fv = mglUniform4fv;
    ctx->dispatch.uniform1iv = mglUniform1iv;
    ctx->dispatch.uniform2iv = mglUniform2iv;
    ctx->dispatch.uniform3iv = mglUniform3iv;
    ctx->dispatch.uniform4iv = mglUniform4iv;
    ctx->dispatch.uniform_matrix2fv = mglUniformMatrix2fv;
    ctx->dispatch.uniform_matrix3fv = mglUniformMatrix3fv;
    ctx->dispatch.uniform_matrix4fv = mglUniformMatrix4fv;
    ctx->dispatch.validate_program = mglValidateProgram;
    ctx->dispatch.vertex_attrib1d = mglVertexAttrib1d;
    ctx->dispatch.vertex_attrib1dv = mglVertexAttrib1dv;
    ctx->dispatch.vertex_attrib1f = mglVertexAttrib1f;
    ctx->dispatch.vertex_attrib1fv = mglVertexAttrib1fv;
    ctx->dispatch.vertex_attrib1s = mglVertexAttrib1s;
    ctx->dispatch.vertex_attrib1sv = mglVertexAttrib1sv;
    ctx->dispatch.vertex_attrib2d = mglVertexAttrib2d;
    ctx->dispatch.vertex_attrib2dv = mglVertexAttrib2dv;
    ctx->dispatch.vertex_attrib2f = mglVertexAttrib2f;
    ctx->dispatch.vertex_attrib2fv = mglVertexAttrib2fv;
    ctx->dispatch.vertex_attrib2s = mglVertexAttrib2s;
    ctx->dispatch.vertex_attrib2sv = mglVertexAttrib2sv;
    ctx->dispatch.vertex_attrib3d = mglVertexAttrib3d;
    ctx->dispatch.vertex_attrib3dv = mglVertexAttrib3dv;
    ctx->dispatch.vertex_attrib3f = mglVertexAttrib3f;
    ctx->dispatch.vertex_attrib3fv = mglVertexAttrib3fv;
    ctx->dispatch.vertex_attrib3s = mglVertexAttrib3s;
    ctx->dispatch.vertex_attrib3sv = mglVertexAttrib3sv;
    ctx->dispatch.vertex_attrib4_nbv = mglVertexAttrib4Nbv;
    ctx->dispatch.vertex_attrib4_niv = mglVertexAttrib4Niv;
    ctx->dispatch.vertex_attrib4_nsv = mglVertexAttrib4Nsv;
    ctx->dispatch.vertex_attrib4_nub = mglVertexAttrib4Nub;
    ctx->dispatch.vertex_attrib4_nubv = mglVertexAttrib4Nubv;
    ctx->dispatch.vertex_attrib4_nuiv = mglVertexAttrib4Nuiv;
    ctx->dispatch.vertex_attrib4_nusv = mglVertexAttrib4Nusv;
    ctx->dispatch.vertex_attrib4bv = mglVertexAttrib4bv;
    ctx->dispatch.vertex_attrib4d = mglVertexAttrib4d;
    ctx->dispatch.vertex_attrib4dv = mglVertexAttrib4dv;
    ctx->dispatch.vertex_attrib4f = mglVertexAttrib4f;
    ctx->dispatch.vertex_attrib4fv = mglVertexAttrib4fv;
    ctx->dispatch.vertex_attrib4iv = mglVertexAttrib4iv;
    ctx->dispatch.vertex_attrib4s = mglVertexAttrib4s;
    ctx->dispatch.vertex_attrib4sv = mglVertexAttrib4sv;
    ctx->dispatch.vertex_attrib4ubv = mglVertexAttrib4ubv;
    ctx->dispatch.vertex_attrib4uiv = mglVertexAttrib4uiv;
    ctx->dispatch.vertex_attrib4usv = mglVertexAttrib4usv;
    ctx->dispatch.vertex_attrib_pointer = mglVertexAttribPointer;
    ctx->dispatch.uniform_matrix2x3fv = mglUniformMatrix2x3fv;
    ctx->dispatch.uniform_matrix3x2fv = mglUniformMatrix3x2fv;
    ctx->dispatch.uniform_matrix2x4fv = mglUniformMatrix2x4fv;
    ctx->dispatch.uniform_matrix4x2fv = mglUniformMatrix4x2fv;
    ctx->dispatch.uniform_matrix3x4fv = mglUniformMatrix3x4fv;
    ctx->dispatch.uniform_matrix4x3fv = mglUniformMatrix4x3fv;
    ctx->dispatch.color_maski = mglColorMaski;
    ctx->dispatch.get_booleani_v = mglGetBooleani_v;
    ctx->dispatch.get_integeri_v = mglGetIntegeri_v;
    ctx->dispatch.enablei = mglEnablei;
    ctx->dispatch.disablei = mglDisablei;
    ctx->dispatch.is_enabledi = mglIsEnabledi;
    ctx->dispatch.begin_transform_feedback = mglBeginTransformFeedback;
    ctx->dispatch.end_transform_feedback = mglEndTransformFeedback;
    ctx->dispatch.bind_buffer_range = mglBindBufferRange;
    ctx->dispatch.bind_buffer_base = mglBindBufferBase;
    ctx->dispatch.transform_feedback_varyings = mglTransformFeedbackVaryings;
    ctx->dispatch.get_transform_feedback_varying = mglGetTransformFeedbackVarying;
    ctx->dispatch.clamp_color = mglClampColor;
    ctx->dispatch.begin_conditional_render = mglBeginConditionalRender;
    ctx->dispatch.end_conditional_render = mglEndConditionalRender;
    ctx->dispatch.vertex_attrib_i_pointer = mglVertexAttribIPointer;
    ctx->dispatch.get_vertex_attrib_iiv = mglGetVertexAttribIiv;
    ctx->dispatch.get_vertex_attrib_iuiv = mglGetVertexAttribIuiv;
    ctx->dispatch.vertex_attrib_i1i = mglVertexAttribI1i;
    ctx->dispatch.vertex_attrib_i2i = mglVertexAttribI2i;
    ctx->dispatch.vertex_attrib_i3i = mglVertexAttribI3i;
    ctx->dispatch.vertex_attrib_i4i = mglVertexAttribI4i;
    ctx->dispatch.vertex_attrib_i1ui = mglVertexAttribI1ui;
    ctx->dispatch.vertex_attrib_i2ui = mglVertexAttribI2ui;
    ctx->dispatch.vertex_attrib_i3ui = mglVertexAttribI3ui;
    ctx->dispatch.vertex_attrib_i4ui = mglVertexAttribI4ui;
    ctx->dispatch.vertex_attrib_i1iv = mglVertexAttribI1iv;
    ctx->dispatch.vertex_attrib_i2iv = mglVertexAttribI2iv;
    ctx->dispatch.vertex_attrib_i3iv = mglVertexAttribI3iv;
    ctx->dispatch.vertex_attrib_i4iv = mglVertexAttribI4iv;
    ctx->dispatch.vertex_attrib_i1uiv = mglVertexAttribI1uiv;
    ctx->dispatch.vertex_attrib_i2uiv = mglVertexAttribI2uiv;
    ctx->dispatch.vertex_attrib_i3uiv = mglVertexAttribI3uiv;
    ctx->dispatch.vertex_attrib_i4uiv = mglVertexAttribI4uiv;
    ctx->dispatch.vertex_attrib_i4bv = mglVertexAttribI4bv;
    ctx->dispatch.vertex_attrib_i4sv = mglVertexAttribI4sv;
    ctx->dispatch.vertex_attrib_i4ubv = mglVertexAttribI4ubv;
    ctx->dispatch.vertex_attrib_i4usv = mglVertexAttribI4usv;
    ctx->dispatch.get_uniformuiv = mglGetUniformuiv;
    ctx->dispatch.bind_frag_data_location = mglBindFragDataLocation;
    ctx->dispatch.get_frag_data_location = mglGetFragDataLocation;
    ctx->dispatch.uniform1ui = mglUniform1ui;
    ctx->dispatch.uniform2ui = mglUniform2ui;
    ctx->dispatch.uniform3ui = mglUniform3ui;
    ctx->dispatch.uniform4ui = mglUniform4ui;
    ctx->dispatch.uniform1uiv = mglUniform1uiv;
    ctx->dispatch.uniform2uiv = mglUniform2uiv;
    ctx->dispatch.uniform3uiv = mglUniform3uiv;
    ctx->dispatch.uniform4uiv = mglUniform4uiv;
    ctx->dispatch.tex_parameter_iiv = mglTexParameterIiv;
    ctx->dispatch.tex_parameter_iuiv = mglTexParameterIuiv;
    ctx->dispatch.get_tex_parameter_iiv = mglGetTexParameterIiv;
    ctx->dispatch.get_tex_parameter_iuiv = mglGetTexParameterIuiv;
    ctx->dispatch.clear_bufferiv = mglClearBufferiv;
    ctx->dispatch.clear_bufferuiv = mglClearBufferuiv;
    ctx->dispatch.clear_bufferfv = mglClearBufferfv;
    ctx->dispatch.clear_bufferfi = mglClearBufferfi;
    ctx->dispatch.get_stringi = mglGetStringi;
    ctx->dispatch.is_renderbuffer = mglIsRenderbuffer;
    ctx->dispatch.bind_renderbuffer = mglBindRenderbuffer;
    ctx->dispatch.delete_renderbuffers = mglDeleteRenderbuffers;
    ctx->dispatch.gen_renderbuffers = mglGenRenderbuffers;
    ctx->dispatch.renderbuffer_storage = mglRenderbufferStorage;
    ctx->dispatch.get_renderbuffer_parameteriv = mglGetRenderbufferParameteriv;
    ctx->dispatch.is_framebuffer = mglIsFramebuffer;
    ctx->dispatch.bind_framebuffer = mglBindFramebuffer;
    ctx->dispatch.delete_framebuffers = mglDeleteFramebuffers;
    ctx->dispatch.gen_framebuffers = mglGenFramebuffers;
    ctx->dispatch.check_framebuffer_status = mglCheckFramebufferStatus;
    ctx->dispatch.framebuffer_texture1D = mglFramebufferTexture1D;
    ctx->dispatch.framebuffer_texture2D = mglFramebufferTexture2D;
    ctx->dispatch.framebuffer_texture3D = mglFramebufferTexture3D;
    ctx->dispatch.framebuffer_renderbuffer = mglFramebufferRenderbuffer;
    ctx->dispatch.get_framebuffer_attachment_parameteriv = mglGetFramebufferAttachmentParameteriv;
    ctx->dispatch.generate_mipmap = mglGenerateMipmap;
    ctx->dispatch.blit_framebuffer = mglBlitFramebuffer;
    ctx->dispatch.renderbuffer_storage_multisample = mglRenderbufferStorageMultisample;
    ctx->dispatch.framebuffer_texture_layer = mglFramebufferTextureLayer;
    ctx->dispatch.map_buffer_range = mglMapBufferRange;
    ctx->dispatch.flush_mapped_buffer_range = mglFlushMappedBufferRange;
    ctx->dispatch.bind_vertex_array = mglBindVertexArray;
    ctx->dispatch.delete_vertex_arrays = mglDeleteVertexArrays;
    ctx->dispatch.gen_vertex_arrays = mglGenVertexArrays;
    ctx->dispatch.is_vertex_array = mglIsVertexArray;
    ctx->dispatch.draw_arrays_instanced = mglDrawArraysInstanced;
    ctx->dispatch.draw_elements_instanced = mglDrawElementsInstanced;
    ctx->dispatch.tex_buffer = mglTexBuffer;
    ctx->dispatch.primitive_restart_index = mglPrimitiveRestartIndex;
    ctx->dispatch.copy_buffer_sub_data = mglCopyBufferSubData;
    ctx->dispatch.get_uniform_indices = mglGetUniformIndices;
    ctx->dispatch.get_active_uniformsiv = mglGetActiveUniformsiv;
    ctx->dispatch.get_active_uniform_name = mglGetActiveUniformName;
    ctx->dispatch.get_uniform_block_index = mglGetUniformBlockIndex;
    ctx->dispatch.get_active_uniform_blockiv = mglGetActiveUniformBlockiv;
    ctx->dispatch.get_active_uniform_block_name = mglGetActiveUniformBlockName;
    ctx->dispatch.uniform_block_binding = mglUniformBlockBinding;
    ctx->dispatch.bind_buffer_range = mglBindBufferRange;
    ctx->dispatch.bind_buffer_base = mglBindBufferBase;
    ctx->dispatch.get_integeri_v = mglGetIntegeri_v;
    ctx->dispatch.draw_elements_base_vertex = mglDrawElementsBaseVertex;
    ctx->dispatch.draw_range_elements_base_vertex = mglDrawRangeElementsBaseVertex;
    ctx->dispatch.draw_elements_instanced_base_vertex = mglDrawElementsInstancedBaseVertex;
    ctx->dispatch.multi_draw_elements_base_vertex = mglMultiDrawElementsBaseVertex;
    ctx->dispatch.provoking_vertex = mglProvokingVertex;
    ctx->dispatch.fence_sync = mglFenceSync;
    ctx->dispatch.is_sync = mglIsSync;
    ctx->dispatch.delete_sync = mglDeleteSync;
    ctx->dispatch.client_wait_sync = mglClientWaitSync;
    ctx->dispatch.wait_sync = mglWaitSync;
    ctx->dispatch.get_integer64v = mglGetInteger64v;
    ctx->dispatch.get_synciv = mglGetSynciv;
    ctx->dispatch.get_integer64i_v = mglGetInteger64i_v;
    ctx->dispatch.get_buffer_parameteri64v = mglGetBufferParameteri64v;
    ctx->dispatch.framebuffer_texture = mglFramebufferTexture;
    ctx->dispatch.tex_image2_d_multisample = mglTexImage2DMultisample;
    ctx->dispatch.tex_image3_d_multisample = mglTexImage3DMultisample;
    ctx->dispatch.get_multisamplefv = mglGetMultisamplefv;
    ctx->dispatch.sample_maski = mglSampleMaski;
    ctx->dispatch.bind_frag_data_location_indexed = mglBindFragDataLocationIndexed;
    ctx->dispatch.get_frag_data_index = mglGetFragDataIndex;
    ctx->dispatch.gen_samplers = mglGenSamplers;
    ctx->dispatch.delete_samplers = mglDeleteSamplers;
    ctx->dispatch.is_sampler = mglIsSampler;
    ctx->dispatch.bind_sampler = mglBindSampler;
    ctx->dispatch.sampler_parameteri = mglSamplerParameteri;
    ctx->dispatch.sampler_parameteriv = mglSamplerParameteriv;
    ctx->dispatch.sampler_parameterf = mglSamplerParameterf;
    ctx->dispatch.sampler_parameterfv = mglSamplerParameterfv;
    ctx->dispatch.sampler_parameter_iiv = mglSamplerParameterIiv;
    ctx->dispatch.sampler_parameter_iuiv = mglSamplerParameterIuiv;
    ctx->dispatch.get_sampler_parameteriv = mglGetSamplerParameteriv;
    ctx->dispatch.get_sampler_parameter_iiv = mglGetSamplerParameterIiv;
    ctx->dispatch.get_sampler_parameterfv = mglGetSamplerParameterfv;
    ctx->dispatch.get_sampler_parameter_iuiv = mglGetSamplerParameterIuiv;
    ctx->dispatch.query_counter = mglQueryCounter;
    ctx->dispatch.get_query_objecti64v = mglGetQueryObjecti64v;
    ctx->dispatch.get_query_objectui64v = mglGetQueryObjectui64v;
    ctx->dispatch.vertex_attrib_divisor = mglVertexAttribDivisor;
    ctx->dispatch.vertex_attrib_p1ui = mglVertexAttribP1ui;
    ctx->dispatch.vertex_attrib_p1uiv = mglVertexAttribP1uiv;
    ctx->dispatch.vertex_attrib_p2ui = mglVertexAttribP2ui;
    ctx->dispatch.vertex_attrib_p2uiv = mglVertexAttribP2uiv;
    ctx->dispatch.vertex_attrib_p3ui = mglVertexAttribP3ui;
    ctx->dispatch.vertex_attrib_p3uiv = mglVertexAttribP3uiv;
    ctx->dispatch.vertex_attrib_p4ui = mglVertexAttribP4ui;
    ctx->dispatch.vertex_attrib_p4uiv = mglVertexAttribP4uiv;
    ctx->dispatch.vertex_p2ui = mglVertexP2ui;
    ctx->dispatch.vertex_p2uiv = mglVertexP2uiv;
    ctx->dispatch.vertex_p3ui = mglVertexP3ui;
    ctx->dispatch.vertex_p3uiv = mglVertexP3uiv;
    ctx->dispatch.vertex_p4ui = mglVertexP4ui;
    ctx->dispatch.vertex_p4uiv = mglVertexP4uiv;
    ctx->dispatch.tex_coord_p1ui = mglTexCoordP1ui;
    ctx->dispatch.tex_coord_p1uiv = mglTexCoordP1uiv;
    ctx->dispatch.tex_coord_p2ui = mglTexCoordP2ui;
    ctx->dispatch.tex_coord_p2uiv = mglTexCoordP2uiv;
    ctx->dispatch.tex_coord_p3ui = mglTexCoordP3ui;
    ctx->dispatch.tex_coord_p3uiv = mglTexCoordP3uiv;
    ctx->dispatch.tex_coord_p4ui = mglTexCoordP4ui;
    ctx->dispatch.tex_coord_p4uiv = mglTexCoordP4uiv;
    ctx->dispatch.multi_tex_coord_p1ui = mglMultiTexCoordP1ui;
    ctx->dispatch.multi_tex_coord_p1uiv = mglMultiTexCoordP1uiv;
    ctx->dispatch.multi_tex_coord_p2ui = mglMultiTexCoordP2ui;
    ctx->dispatch.multi_tex_coord_p2uiv = mglMultiTexCoordP2uiv;
    ctx->dispatch.multi_tex_coord_p3ui = mglMultiTexCoordP3ui;
    ctx->dispatch.multi_tex_coord_p3uiv = mglMultiTexCoordP3uiv;
    ctx->dispatch.multi_tex_coord_p4ui = mglMultiTexCoordP4ui;
    ctx->dispatch.multi_tex_coord_p4uiv = mglMultiTexCoordP4uiv;
    ctx->dispatch.normal_p3ui = mglNormalP3ui;
    ctx->dispatch.normal_p3uiv = mglNormalP3uiv;
    ctx->dispatch.color_p3ui = mglColorP3ui;
    ctx->dispatch.color_p3uiv = mglColorP3uiv;
    ctx->dispatch.color_p4ui = mglColorP4ui;
    ctx->dispatch.color_p4uiv = mglColorP4uiv;
    ctx->dispatch.secondary_color_p3ui = mglSecondaryColorP3ui;
    ctx->dispatch.secondary_color_p3uiv = mglSecondaryColorP3uiv;
    ctx->dispatch.min_sample_shading = mglMinSampleShading;
    ctx->dispatch.blend_equationi = mglBlendEquationi;
    ctx->dispatch.blend_equation_separatei = mglBlendEquationSeparatei;
    ctx->dispatch.blend_funci = mglBlendFunci;
    ctx->dispatch.blend_func_separatei = mglBlendFuncSeparatei;
    ctx->dispatch.draw_arrays_indirect = mglDrawArraysIndirect;
    ctx->dispatch.draw_elements_indirect = mglDrawElementsIndirect;
    ctx->dispatch.uniform1d = mglUniform1d;
    ctx->dispatch.uniform2d = mglUniform2d;
    ctx->dispatch.uniform3d = mglUniform3d;
    ctx->dispatch.uniform4d = mglUniform4d;
    ctx->dispatch.uniform1dv = mglUniform1dv;
    ctx->dispatch.uniform2dv = mglUniform2dv;
    ctx->dispatch.uniform3dv = mglUniform3dv;
    ctx->dispatch.uniform4dv = mglUniform4dv;
    ctx->dispatch.uniform_matrix2dv = mglUniformMatrix2dv;
    ctx->dispatch.uniform_matrix3dv = mglUniformMatrix3dv;
    ctx->dispatch.uniform_matrix4dv = mglUniformMatrix4dv;
    ctx->dispatch.uniform_matrix2x3dv = mglUniformMatrix2x3dv;
    ctx->dispatch.uniform_matrix2x4dv = mglUniformMatrix2x4dv;
    ctx->dispatch.uniform_matrix3x2dv = mglUniformMatrix3x2dv;
    ctx->dispatch.uniform_matrix3x4dv = mglUniformMatrix3x4dv;
    ctx->dispatch.uniform_matrix4x2dv = mglUniformMatrix4x2dv;
    ctx->dispatch.uniform_matrix4x3dv = mglUniformMatrix4x3dv;
    ctx->dispatch.get_uniformdv = mglGetUniformdv;
    ctx->dispatch.get_subroutine_uniform_location = mglGetSubroutineUniformLocation;
    ctx->dispatch.get_subroutine_index = mglGetSubroutineIndex;
    ctx->dispatch.get_active_subroutine_uniformiv = mglGetActiveSubroutineUniformiv;
    ctx->dispatch.get_active_subroutine_uniform_name = mglGetActiveSubroutineUniformName;
    ctx->dispatch.get_active_subroutine_name = mglGetActiveSubroutineName;
    ctx->dispatch.uniform_subroutinesuiv = mglUniformSubroutinesuiv;
    ctx->dispatch.get_uniform_subroutineuiv = mglGetUniformSubroutineuiv;
    ctx->dispatch.get_program_stageiv = mglGetProgramStageiv;
    ctx->dispatch.patch_parameteri = mglPatchParameteri;
    ctx->dispatch.patch_parameterfv = mglPatchParameterfv;
    ctx->dispatch.bind_transform_feedback = mglBindTransformFeedback;
    ctx->dispatch.delete_transform_feedbacks = mglDeleteTransformFeedbacks;
    ctx->dispatch.gen_transform_feedbacks = mglGenTransformFeedbacks;
    ctx->dispatch.is_transform_feedback = mglIsTransformFeedback;
    ctx->dispatch.pause_transform_feedback = mglPauseTransformFeedback;
    ctx->dispatch.resume_transform_feedback = mglResumeTransformFeedback;
    ctx->dispatch.draw_transform_feedback = mglDrawTransformFeedback;
    ctx->dispatch.draw_transform_feedback_stream = mglDrawTransformFeedbackStream;
    ctx->dispatch.begin_query_indexed = mglBeginQueryIndexed;
    ctx->dispatch.end_query_indexed = mglEndQueryIndexed;
    ctx->dispatch.get_query_indexediv = mglGetQueryIndexediv;
    ctx->dispatch.release_shader_compiler = mglReleaseShaderCompiler;
    ctx->dispatch.shader_binary = mglShaderBinary;
    ctx->dispatch.get_shader_precision_format = mglGetShaderPrecisionFormat;
    ctx->dispatch.depth_rangef = mglDepthRangef;
    ctx->dispatch.clear_depthf = mglClearDepthf;
    ctx->dispatch.get_program_binary = mglGetProgramBinary;
    ctx->dispatch.program_binary = mglProgramBinary;
    ctx->dispatch.program_parameteri = mglProgramParameteri;
    ctx->dispatch.use_program_stages = mglUseProgramStages;
    ctx->dispatch.active_shader_program = mglActiveShaderProgram;
    ctx->dispatch.create_shader_programv = mglCreateShaderProgramv;
    ctx->dispatch.bind_program_pipeline = mglBindProgramPipeline;
    ctx->dispatch.delete_program_pipelines = mglDeleteProgramPipelines;
    ctx->dispatch.gen_program_pipelines = mglGenProgramPipelines;
    ctx->dispatch.is_program_pipeline = mglIsProgramPipeline;
    ctx->dispatch.get_program_pipelineiv = mglGetProgramPipelineiv;
    ctx->dispatch.program_parameteri = mglProgramParameteri;
    ctx->dispatch.program_uniform1i = mglProgramUniform1i;
    ctx->dispatch.program_uniform1iv = mglProgramUniform1iv;
    ctx->dispatch.program_uniform1f = mglProgramUniform1f;
    ctx->dispatch.program_uniform1fv = mglProgramUniform1fv;
    ctx->dispatch.program_uniform1d = mglProgramUniform1d;
    ctx->dispatch.program_uniform1dv = mglProgramUniform1dv;
    ctx->dispatch.program_uniform1ui = mglProgramUniform1ui;
    ctx->dispatch.program_uniform1uiv = mglProgramUniform1uiv;
    ctx->dispatch.program_uniform2i = mglProgramUniform2i;
    ctx->dispatch.program_uniform2iv = mglProgramUniform2iv;
    ctx->dispatch.program_uniform2f = mglProgramUniform2f;
    ctx->dispatch.program_uniform2fv = mglProgramUniform2fv;
    ctx->dispatch.program_uniform2d = mglProgramUniform2d;
    ctx->dispatch.program_uniform2dv = mglProgramUniform2dv;
    ctx->dispatch.program_uniform2ui = mglProgramUniform2ui;
    ctx->dispatch.program_uniform2uiv = mglProgramUniform2uiv;
    ctx->dispatch.program_uniform3i = mglProgramUniform3i;
    ctx->dispatch.program_uniform3iv = mglProgramUniform3iv;
    ctx->dispatch.program_uniform3f = mglProgramUniform3f;
    ctx->dispatch.program_uniform3fv = mglProgramUniform3fv;
    ctx->dispatch.program_uniform3d = mglProgramUniform3d;
    ctx->dispatch.program_uniform3dv = mglProgramUniform3dv;
    ctx->dispatch.program_uniform3ui = mglProgramUniform3ui;
    ctx->dispatch.program_uniform3uiv = mglProgramUniform3uiv;
    ctx->dispatch.program_uniform4i = mglProgramUniform4i;
    ctx->dispatch.program_uniform4iv = mglProgramUniform4iv;
    ctx->dispatch.program_uniform4f = mglProgramUniform4f;
    ctx->dispatch.program_uniform4fv = mglProgramUniform4fv;
    ctx->dispatch.program_uniform4d = mglProgramUniform4d;
    ctx->dispatch.program_uniform4dv = mglProgramUniform4dv;
    ctx->dispatch.program_uniform4ui = mglProgramUniform4ui;
    ctx->dispatch.program_uniform4uiv = mglProgramUniform4uiv;
    ctx->dispatch.program_uniform_matrix2fv = mglProgramUniformMatrix2fv;
    ctx->dispatch.program_uniform_matrix3fv = mglProgramUniformMatrix3fv;
    ctx->dispatch.program_uniform_matrix4fv = mglProgramUniformMatrix4fv;
    ctx->dispatch.program_uniform_matrix2dv = mglProgramUniformMatrix2dv;
    ctx->dispatch.program_uniform_matrix3dv = mglProgramUniformMatrix3dv;
    ctx->dispatch.program_uniform_matrix4dv = mglProgramUniformMatrix4dv;
    ctx->dispatch.program_uniform_matrix2x3fv = mglProgramUniformMatrix2x3fv;
    ctx->dispatch.program_uniform_matrix3x2fv = mglProgramUniformMatrix3x2fv;
    ctx->dispatch.program_uniform_matrix2x4fv = mglProgramUniformMatrix2x4fv;
    ctx->dispatch.program_uniform_matrix4x2fv = mglProgramUniformMatrix4x2fv;
    ctx->dispatch.program_uniform_matrix3x4fv = mglProgramUniformMatrix3x4fv;
    ctx->dispatch.program_uniform_matrix4x3fv = mglProgramUniformMatrix4x3fv;
    ctx->dispatch.program_uniform_matrix2x3dv = mglProgramUniformMatrix2x3dv;
    ctx->dispatch.program_uniform_matrix3x2dv = mglProgramUniformMatrix3x2dv;
    ctx->dispatch.program_uniform_matrix2x4dv = mglProgramUniformMatrix2x4dv;
    ctx->dispatch.program_uniform_matrix4x2dv = mglProgramUniformMatrix4x2dv;
    ctx->dispatch.program_uniform_matrix3x4dv = mglProgramUniformMatrix3x4dv;
    ctx->dispatch.program_uniform_matrix4x3dv = mglProgramUniformMatrix4x3dv;
    ctx->dispatch.validate_program_pipeline = mglValidateProgramPipeline;
    ctx->dispatch.get_program_pipeline_info_log = mglGetProgramPipelineInfoLog;
    ctx->dispatch.vertex_attrib_l1d = mglVertexAttribL1d;
    ctx->dispatch.vertex_attrib_l2d = mglVertexAttribL2d;
    ctx->dispatch.vertex_attrib_l3d = mglVertexAttribL3d;
    ctx->dispatch.vertex_attrib_l4d = mglVertexAttribL4d;
    ctx->dispatch.vertex_attrib_l1dv = mglVertexAttribL1dv;
    ctx->dispatch.vertex_attrib_l2dv = mglVertexAttribL2dv;
    ctx->dispatch.vertex_attrib_l3dv = mglVertexAttribL3dv;
    ctx->dispatch.vertex_attrib_l4dv = mglVertexAttribL4dv;
    ctx->dispatch.vertex_attrib_l_pointer = mglVertexAttribLPointer;
    ctx->dispatch.get_vertex_attrib_ldv = mglGetVertexAttribLdv;
    ctx->dispatch.viewport_arrayv = mglViewportArrayv;
    ctx->dispatch.viewport_indexedf = mglViewportIndexedf;
    ctx->dispatch.viewport_indexedfv = mglViewportIndexedfv;
    ctx->dispatch.scissor_arrayv = mglScissorArrayv;
    ctx->dispatch.scissor_indexed = mglScissorIndexed;
    ctx->dispatch.scissor_indexedv = mglScissorIndexedv;
    ctx->dispatch.depth_range_arrayv = mglDepthRangeArrayv;
    ctx->dispatch.depth_range_indexed = mglDepthRangeIndexed;
    ctx->dispatch.get_floati_v = mglGetFloati_v;
    ctx->dispatch.get_doublei_v = mglGetDoublei_v;
    ctx->dispatch.draw_arrays_instanced_base_instance = mglDrawArraysInstancedBaseInstance;
    ctx->dispatch.draw_elements_instanced_base_instance = mglDrawElementsInstancedBaseInstance;
    ctx->dispatch.draw_elements_instanced_base_vertex_base_instance = mglDrawElementsInstancedBaseVertexBaseInstance;
    ctx->dispatch.get_internalformativ = mglGetInternalformativ;
    ctx->dispatch.get_active_atomic_counter_bufferiv = mglGetActiveAtomicCounterBufferiv;
    ctx->dispatch.bind_image_texture = mglBindImageTexture;
    ctx->dispatch.memory_barrier = mglMemoryBarrier;
    ctx->dispatch.tex_storage1D = mglTexStorage1D;
    ctx->dispatch.tex_storage2D = mglTexStorage2D;
    ctx->dispatch.tex_storage3D = mglTexStorage3D;
    ctx->dispatch.draw_transform_feedback_instanced = mglDrawTransformFeedbackInstanced;
    ctx->dispatch.draw_transform_feedback_stream_instanced = mglDrawTransformFeedbackStreamInstanced;
    ctx->dispatch.clear_buffer_data = mglClearBufferData;
    ctx->dispatch.clear_buffer_sub_data = mglClearBufferSubData;
    ctx->dispatch.dispatch_compute = mglDispatchCompute;
    ctx->dispatch.dispatch_compute_indirect = mglDispatchComputeIndirect;
    ctx->dispatch.copy_image_sub_data = mglCopyImageSubData;
    ctx->dispatch.framebuffer_parameteri = mglFramebufferParameteri;
    ctx->dispatch.get_framebuffer_parameteriv = mglGetFramebufferParameteriv;
    ctx->dispatch.get_internalformati64v = mglGetInternalformati64v;
    ctx->dispatch.invalidate_tex_sub_image = mglInvalidateTexSubImage;
    ctx->dispatch.invalidate_tex_image = mglInvalidateTexImage;
    ctx->dispatch.invalidate_buffer_sub_data = mglInvalidateBufferSubData;
    ctx->dispatch.invalidate_buffer_data = mglInvalidateBufferData;
    ctx->dispatch.invalidate_framebuffer = mglInvalidateFramebuffer;
    ctx->dispatch.invalidate_sub_framebuffer = mglInvalidateSubFramebuffer;
    ctx->dispatch.multi_draw_arrays_indirect = mglMultiDrawArraysIndirect;
    ctx->dispatch.multi_draw_elements_indirect = mglMultiDrawElementsIndirect;
    ctx->dispatch.get_program_interfaceiv = mglGetProgramInterfaceiv;
    ctx->dispatch.get_program_resource_index = mglGetProgramResourceIndex;
    ctx->dispatch.get_program_resource_name = mglGetProgramResourceName;
    ctx->dispatch.get_program_resourceiv = mglGetProgramResourceiv;
    ctx->dispatch.get_program_resource_location = mglGetProgramResourceLocation;
    ctx->dispatch.get_program_resource_location_index = mglGetProgramResourceLocationIndex;
    ctx->dispatch.shader_storage_block_binding = mglShaderStorageBlockBinding;
    ctx->dispatch.tex_buffer_range = mglTexBufferRange;
    ctx->dispatch.tex_storage2_d_multisample = mglTexStorage2DMultisample;
    ctx->dispatch.tex_storage3_d_multisample = mglTexStorage3DMultisample;
    ctx->dispatch.texture_view = mglTextureView;
    ctx->dispatch.bind_vertex_buffer = mglBindVertexBuffer;
    ctx->dispatch.vertex_attrib_format = mglVertexAttribFormat;
    ctx->dispatch.vertex_attrib_i_format = mglVertexAttribIFormat;
    ctx->dispatch.vertex_attrib_l_format = mglVertexAttribLFormat;
    ctx->dispatch.vertex_attrib_binding = mglVertexAttribBinding;
    ctx->dispatch.vertex_binding_divisor = mglVertexBindingDivisor;
    ctx->dispatch.debug_message_control = mglDebugMessageControl;
    ctx->dispatch.debug_message_insert = mglDebugMessageInsert;
    ctx->dispatch.debug_message_callback = mglDebugMessageCallback;
    ctx->dispatch.get_debug_message_log = mglGetDebugMessageLog;
    ctx->dispatch.push_debug_group = mglPushDebugGroup;
    ctx->dispatch.pop_debug_group = mglPopDebugGroup;
    ctx->dispatch.object_label = mglObjectLabel;
    ctx->dispatch.get_object_label = mglGetObjectLabel;
    ctx->dispatch.object_ptr_label = mglObjectPtrLabel;
    ctx->dispatch.get_object_ptr_label = mglGetObjectPtrLabel;
    ctx->dispatch.get_pointerv = mglGetPointerv;
    ctx->dispatch.buffer_storage = mglBufferStorage;
    ctx->dispatch.clear_tex_image = mglClearTexImage;
    ctx->dispatch.clear_tex_sub_image = mglClearTexSubImage;
    ctx->dispatch.bind_buffers_base = mglBindBuffersBase;
    ctx->dispatch.bind_buffers_range = mglBindBuffersRange;
    ctx->dispatch.bind_textures = mglBindTextures;
    ctx->dispatch.bind_samplers = mglBindSamplers;
    ctx->dispatch.bind_image_textures = mglBindImageTextures;
    ctx->dispatch.bind_vertex_buffers = mglBindVertexBuffers;
    ctx->dispatch.clip_control = mglClipControl;
    ctx->dispatch.create_transform_feedbacks = mglCreateTransformFeedbacks;
    ctx->dispatch.transform_feedback_buffer_base = mglTransformFeedbackBufferBase;
    ctx->dispatch.transform_feedback_buffer_range = mglTransformFeedbackBufferRange;
    ctx->dispatch.get_transform_feedbackiv = mglGetTransformFeedbackiv;
    ctx->dispatch.get_transform_feedbacki_v = mglGetTransformFeedbacki_v;
    ctx->dispatch.get_transform_feedbacki64_v = mglGetTransformFeedbacki64_v;
    ctx->dispatch.create_buffers = mglCreateBuffers;
    ctx->dispatch.named_buffer_storage = mglNamedBufferStorage;
    ctx->dispatch.named_buffer_data = mglNamedBufferData;
    ctx->dispatch.named_buffer_sub_data = mglNamedBufferSubData;
    ctx->dispatch.copy_named_buffer_sub_data = mglCopyNamedBufferSubData;
    ctx->dispatch.clear_named_buffer_data = mglClearNamedBufferData;
    ctx->dispatch.clear_named_buffer_sub_data = mglClearNamedBufferSubData;
    ctx->dispatch.map_named_buffer = mglMapNamedBuffer;
    ctx->dispatch.map_named_buffer_range = mglMapNamedBufferRange;
    ctx->dispatch.unmap_named_buffer = mglUnmapNamedBuffer;
    ctx->dispatch.flush_mapped_named_buffer_range = mglFlushMappedNamedBufferRange;
    ctx->dispatch.get_named_buffer_parameteriv = mglGetNamedBufferParameteriv;
    ctx->dispatch.get_named_buffer_parameteri64v = mglGetNamedBufferParameteri64v;
    ctx->dispatch.get_named_buffer_pointerv = mglGetNamedBufferPointerv;
    ctx->dispatch.get_named_buffer_sub_data = mglGetNamedBufferSubData;
    ctx->dispatch.create_framebuffers = mglCreateFramebuffers;
    ctx->dispatch.named_framebuffer_renderbuffer = mglNamedFramebufferRenderbuffer;
    ctx->dispatch.named_framebuffer_parameteri = mglNamedFramebufferParameteri;
    ctx->dispatch.named_framebuffer_texture = mglNamedFramebufferTexture;
    ctx->dispatch.named_framebuffer_texture_layer = mglNamedFramebufferTextureLayer;
    ctx->dispatch.named_framebuffer_draw_buffer = mglNamedFramebufferDrawBuffer;
    ctx->dispatch.named_framebuffer_draw_buffers = mglNamedFramebufferDrawBuffers;
    ctx->dispatch.named_framebuffer_read_buffer = mglNamedFramebufferReadBuffer;
    ctx->dispatch.invalidate_named_framebuffer_data = mglInvalidateNamedFramebufferData;
    ctx->dispatch.invalidate_named_framebuffer_sub_data = mglInvalidateNamedFramebufferSubData;
    ctx->dispatch.clear_named_framebufferiv = mglClearNamedFramebufferiv;
    ctx->dispatch.clear_named_framebufferuiv = mglClearNamedFramebufferuiv;
    ctx->dispatch.clear_named_framebufferfv = mglClearNamedFramebufferfv;
    ctx->dispatch.clear_named_framebufferfi = mglClearNamedFramebufferfi;
    ctx->dispatch.blit_named_framebuffer = mglBlitNamedFramebuffer;
    ctx->dispatch.check_named_framebuffer_status = mglCheckNamedFramebufferStatus;
    ctx->dispatch.get_named_framebuffer_parameteriv = mglGetNamedFramebufferParameteriv;
    ctx->dispatch.get_named_framebuffer_attachment_parameteriv = mglGetNamedFramebufferAttachmentParameteriv;
    ctx->dispatch.create_renderbuffers = mglCreateRenderbuffers;
    ctx->dispatch.named_renderbuffer_storage = mglNamedRenderbufferStorage;
    ctx->dispatch.named_renderbuffer_storage_multisample = mglNamedRenderbufferStorageMultisample;
    ctx->dispatch.get_named_renderbuffer_parameteriv = mglGetNamedRenderbufferParameteriv;
    ctx->dispatch.create_textures = mglCreateTextures;
    ctx->dispatch.texture_buffer = mglTextureBuffer;
    ctx->dispatch.texture_buffer_range = mglTextureBufferRange;
    ctx->dispatch.texture_storage1D = mglTextureStorage1D;
    ctx->dispatch.texture_storage2D = mglTextureStorage2D;
    ctx->dispatch.texture_storage3D = mglTextureStorage3D;
    ctx->dispatch.texture_storage2_d_multisample = mglTextureStorage2DMultisample;
    ctx->dispatch.texture_storage3_d_multisample = mglTextureStorage3DMultisample;
    ctx->dispatch.texture_sub_image1D = mglTextureSubImage1D;
    ctx->dispatch.texture_sub_image2D = mglTextureSubImage2D;
    ctx->dispatch.texture_sub_image3D = mglTextureSubImage3D;
    ctx->dispatch.compressed_texture_sub_image1D = mglCompressedTextureSubImage1D;
    ctx->dispatch.compressed_texture_sub_image2D = mglCompressedTextureSubImage2D;
    ctx->dispatch.compressed_texture_sub_image3D = mglCompressedTextureSubImage3D;
    ctx->dispatch.copy_texture_sub_image1D = mglCopyTextureSubImage1D;
    ctx->dispatch.copy_texture_sub_image2D = mglCopyTextureSubImage2D;
    ctx->dispatch.copy_texture_sub_image3D = mglCopyTextureSubImage3D;
    ctx->dispatch.texture_parameterf = mglTextureParameterf;
    ctx->dispatch.texture_parameterfv = mglTextureParameterfv;
    ctx->dispatch.texture_parameteri = mglTextureParameteri;
    ctx->dispatch.texture_parameter_iiv = mglTextureParameterIiv;
    ctx->dispatch.texture_parameter_iuiv = mglTextureParameterIuiv;
    ctx->dispatch.texture_parameteriv = mglTextureParameteriv;
    ctx->dispatch.generate_texture_mipmap = mglGenerateTextureMipmap;
    ctx->dispatch.bind_texture_unit = mglBindTextureUnit;
    ctx->dispatch.get_texture_image = mglGetTextureImage;
    ctx->dispatch.get_compressed_texture_image = mglGetCompressedTextureImage;
    ctx->dispatch.get_texture_level_parameterfv = mglGetTextureLevelParameterfv;
    ctx->dispatch.get_texture_level_parameteriv = mglGetTextureLevelParameteriv;
    ctx->dispatch.get_texture_parameterfv = mglGetTextureParameterfv;
    ctx->dispatch.get_texture_parameter_iiv = mglGetTextureParameterIiv;
    ctx->dispatch.get_texture_parameter_iuiv = mglGetTextureParameterIuiv;
    ctx->dispatch.get_texture_parameteriv = mglGetTextureParameteriv;
    ctx->dispatch.create_vertex_arrays = mglCreateVertexArrays;
    ctx->dispatch.disable_vertex_array_attrib = mglDisableVertexArrayAttrib;
    ctx->dispatch.enable_vertex_array_attrib = mglEnableVertexArrayAttrib;
    ctx->dispatch.vertex_array_element_buffer = mglVertexArrayElementBuffer;
    ctx->dispatch.vertex_array_vertex_buffer = mglVertexArrayVertexBuffer;
    ctx->dispatch.vertex_array_vertex_buffers = mglVertexArrayVertexBuffers;
    ctx->dispatch.vertex_array_attrib_binding = mglVertexArrayAttribBinding;
    ctx->dispatch.vertex_array_attrib_format = mglVertexArrayAttribFormat;
    ctx->dispatch.vertex_array_attrib_i_format = mglVertexArrayAttribIFormat;
    ctx->dispatch.vertex_array_attrib_l_format = mglVertexArrayAttribLFormat;
    ctx->dispatch.vertex_array_binding_divisor = mglVertexArrayBindingDivisor;
    ctx->dispatch.get_vertex_arrayiv = mglGetVertexArrayiv;
    ctx->dispatch.get_vertex_array_indexediv = mglGetVertexArrayIndexediv;
    ctx->dispatch.get_vertex_array_indexed64iv = mglGetVertexArrayIndexed64iv;
    ctx->dispatch.create_samplers = mglCreateSamplers;
    ctx->dispatch.create_program_pipelines = mglCreateProgramPipelines;
    ctx->dispatch.create_queries = mglCreateQueries;
    ctx->dispatch.get_query_buffer_objecti64v = mglGetQueryBufferObjecti64v;
    ctx->dispatch.get_query_buffer_objectiv = mglGetQueryBufferObjectiv;
    ctx->dispatch.get_query_buffer_objectui64v = mglGetQueryBufferObjectui64v;
    ctx->dispatch.get_query_buffer_objectuiv = mglGetQueryBufferObjectuiv;
    ctx->dispatch.memory_barrier_by_region = mglMemoryBarrierByRegion;
    ctx->dispatch.get_texture_sub_image = mglGetTextureSubImage;
    ctx->dispatch.get_compressed_texture_sub_image = mglGetCompressedTextureSubImage;
    ctx->dispatch.get_graphics_reset_status = mglGetGraphicsResetStatus;
    ctx->dispatch.getn_compressed_tex_image = mglGetnCompressedTexImage;
    ctx->dispatch.getn_tex_image = mglGetnTexImage;
    ctx->dispatch.getn_uniformdv = mglGetnUniformdv;
    ctx->dispatch.getn_uniformfv = mglGetnUniformfv;
    ctx->dispatch.getn_uniformiv = mglGetnUniformiv;
    ctx->dispatch.getn_uniformuiv = mglGetnUniformuiv;
    ctx->dispatch.readn_pixels = mglReadnPixels;
    ctx->dispatch.getn_mapdv = mglGetnMapdv;
    ctx->dispatch.getn_mapfv = mglGetnMapfv;
    ctx->dispatch.getn_mapiv = mglGetnMapiv;
    ctx->dispatch.getn_pixel_mapfv = mglGetnPixelMapfv;
    ctx->dispatch.getn_pixel_mapuiv = mglGetnPixelMapuiv;
    ctx->dispatch.getn_pixel_mapusv = mglGetnPixelMapusv;
    ctx->dispatch.getn_polygon_stipple = mglGetnPolygonStipple;
    ctx->dispatch.getn_color_table = mglGetnColorTable;
    ctx->dispatch.getn_convolution_filter = mglGetnConvolutionFilter;
    ctx->dispatch.getn_separable_filter = mglGetnSeparableFilter;
    ctx->dispatch.getn_histogram = mglGetnHistogram;
    ctx->dispatch.getn_minmax = mglGetnMinmax;
    ctx->dispatch.texture_barrier = mglTextureBarrier;
    ctx->dispatch.specialize_shader = mglSpecializeShader;
    ctx->dispatch.multi_draw_arrays_indirect_count = mglMultiDrawArraysIndirectCount;
    ctx->dispatch.multi_draw_elements_indirect_count = mglMultiDrawElementsIndirectCount;
    ctx->dispatch.polygon_offset_clamp = mglPolygonOffsetClamp;
};
