text: /*
  
      OpenGL, OpenGL ES loader generated by glad 0.1.35 on Sun Apr 10 13:50:25 2022.
  
      Language/Generator: C/C++ Debug
      Specification: gl
      APIs: gl=4.3, gles2=3.1
      Profile: compatibility
      Extensions:
          
      Loader: True
      Local files: False
      Omit khrplatform: False
      Reproducible: False
  
      Commandline:
          --profile="compatibility" --api="gl=4.3,gles2=3.1" --generator="c-debug" --spec="gl" --extensions=""
      Online:
          https://glad.dav1d.de/#profile=compatibility&language=c-debug&specification=gl&loader=on&api=gl%3D4.3&api=gles2%3D3.1
  */
  
  #include <stdio.h>
  #include <stdlib.h>
  #include <string.h>
  #include <glad/glad.h>
  
  void _pre_call_callback_default_gl(const char *name, void *funcptr, int len_args, ...) {
      (void) name;
      (void) funcptr;
      (void) len_args;
  }
  void _post_call_callback_default_gl(const char *name, void *funcptr, int len_args, ...) {
      GLenum error_code;
  
      (void) funcptr;
      (void) len_args;
  
      error_code = glad_glGetError();
  
      if (error_code != GL_NO_ERROR) {
          fprintf(stderr, "ERROR %d in %s\n", error_code, name);
      }
  }
  
  static GLADcallback _pre_call_callback_gl = _pre_call_callback_default_gl;
  void glad_set_pre_callback_gl(GLADcallback cb) {
      _pre_call_callback_gl = cb;
  }
  
  static GLADcallback _post_call_callback_gl = _post_call_callback_default_gl;
  void glad_set_post_callback_gl(GLADcallback cb) {
      _post_call_callback_gl = cb;
  }
  
  void glad_set_pre_callback(GLADcallback cb) {
      glad_set_pre_callback_gl(cb);
  }
  void glad_set_post_callback(GLADcallback cb) {
      glad_set_post_callback_gl(cb);
  }
  
  static void* get_proc(const char *namez);
  
  #if defined(_WIN32) || defined(__CYGWIN__)
  #ifndef _WINDOWS_
  #undef APIENTRY
  #endif
  #include <windows.h>
  static HMODULE libGL;
  
  typedef void* (APIENTRYP PFNWGLGETPROCADDRESSPROC_PRIVATE)(const char*);
  static PFNWGLGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr;
  
  #ifdef _MSC_VER
  #ifdef __has_include
    #if __has_include(<winapifamily.h>)
      #define HAVE_WINAPIFAMILY 1
    #endif
  #elif _MSC_VER >= 1700 && !_USING_V110_SDK71_
    #define HAVE_WINAPIFAMILY 1
  #endif
  #endif
  
  #ifdef HAVE_WINAPIFAMILY
    #include <winapifamily.h>
    #if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
      #define IS_UWP 1
    #endif
  #endif
  
  static
  int open_gl(void) {
  #ifndef IS_UWP
      libGL = LoadLibraryW(L"opengl32.dll");
      if(libGL != NULL) {
          void (* tmp)(void);
          tmp = (void(*)(void)) GetProcAddress(libGL, "wglGetProcAddress");
          gladGetProcAddressPtr = (PFNWGLGETPROCADDRESSPROC_PRIVATE) tmp;
          return gladGetProcAddressPtr != NULL;
      }
  #endif
  
      return 0;
  }
  
  static
  void close_gl(void) {
      if(libGL != NULL) {
          FreeLibrary((HMODULE) libGL);
          libGL = NULL;
      }
  }
  #else
  #include <dlfcn.h>
  static void* libGL;
  
  #if !defined(__APPLE__) && !defined(__HAIKU__)
  typedef void* (APIENTRYP PFNGLXGETPROCADDRESSPROC_PRIVATE)(const char*);
  static PFNGLXGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr;
  #endif
  
  static
  int open_gl(void) {
  #ifdef __APPLE__
      static const char *NAMES[] = {
          "../Frameworks/OpenGL.framework/OpenGL",
          "/Library/Frameworks/OpenGL.framework/OpenGL",
          "/System/Library/Frameworks/OpenGL.framework/OpenGL",
          "/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL"
      };
  #else
      static const char *NAMES[] = {"libGL.so.1", "libGL.so"};
  #endif
  
      unsigned int index = 0;
      for(index = 0; index < (sizeof(NAMES) / sizeof(NAMES[0])); index++) {
          libGL = dlopen(NAMES[index], RTLD_NOW | RTLD_GLOBAL);
  
          if(libGL != NULL) {
  #if defined(__APPLE__) || defined(__HAIKU__)
              return 1;
  #else
              gladGetProcAddressPtr = (PFNGLXGETPROCADDRESSPROC_PRIVATE)dlsym(libGL,
                  "glXGetProcAddressARB");
              return gladGetProcAddressPtr != NULL;
  #endif
          }
      }
  
      return 0;
  }
  
  static
  void close_gl(void) {
      if(libGL != NULL) {
          dlclose(libGL);
          libGL = NULL;
      }
  }
  #endif
  
  static
  void* get_proc(const char *namez) {
      void* result = NULL;
      if(libGL == NULL) return NULL;
  
  #if !defined(__APPLE__) && !defined(__HAIKU__)
      if(gladGetProcAddressPtr != NULL) {
          result = gladGetProcAddressPtr(namez);
      }
  #endif
      if(result == NULL) {
  #if defined(_WIN32) || defined(__CYGWIN__)
          result = (void*)GetProcAddress((HMODULE) libGL, namez);
  #else
          result = dlsym(libGL, namez);
  #endif
      }
  
      return result;
  }
  
  int gladLoadGL(void) {
      int status = 0;
  
      if(open_gl()) {
          status = gladLoadGLLoader(&get_proc);
          close_gl();
      }
  
      return status;
  }
  
  struct gladGLversionStruct GLVersion = { 0, 0 };
  
  #if defined(GL_ES_VERSION_3_0) || defined(GL_VERSION_3_0)
  #define _GLAD_IS_SOME_NEW_VERSION 1
  #endif
  
  static int max_loaded_major;
  static int max_loaded_minor;
  
  static const char *exts = NULL;
  static int num_exts_i = 0;
  static char **exts_i = NULL;
  
  static int get_exts(void) {
  #ifdef _GLAD_IS_SOME_NEW_VERSION
      if(max_loaded_major < 3) {
  #endif
          exts = (const char *)glGetString(GL_EXTENSIONS);
  #ifdef _GLAD_IS_SOME_NEW_VERSION
      } else {
          unsigned int index;
  
          num_exts_i = 0;
          glGetIntegerv(GL_NUM_EXTENSIONS, &num_exts_i);
          if (num_exts_i > 0) {
              exts_i = (char **)malloc((size_t)num_exts_i * (sizeof *exts_i));
          }
  
          if (exts_i == NULL) {
              return 0;
          }
  
          for(index = 0; index < (unsigned)num_exts_i; index++) {
              const char *gl_str_tmp = (const char*)glGetStringi(GL_EXTENSIONS, index);
              size_t len = strlen(gl_str_tmp);
  
              char *local_str = (char*)malloc((len+1) * sizeof(char));
              if(local_str != NULL) {
                  memcpy(local_str, gl_str_tmp, (len+1) * sizeof(char));
              }
              exts_i[index] = local_str;
          }
      }
  #endif
      return 1;
  }
  
  static void free_exts(void) {
      if (exts_i != NULL) {
          int index;
          for(index = 0; index < num_exts_i; index++) {
              free((char *)exts_i[index]);
          }
          free((void *)exts_i);
          exts_i = NULL;
      }
  }
  
  static int has_ext(const char *ext) {
  #ifdef _GLAD_IS_SOME_NEW_VERSION
      if(max_loaded_major < 3) {
  #endif
          const char *extensions;
          const char *loc;
          const char *terminator;
          extensions = exts;
          if(extensions == NULL || ext == NULL) {
              return 0;
          }
  
          while(1) {
              loc = strstr(extensions, ext);
              if(loc == NULL) {
                  return 0;
              }
  
              terminator = loc + strlen(ext);
              if((loc == extensions || *(loc - 1) == ' ') &&
                  (*terminator == ' ' || *terminator == '\0')) {
                  return 1;
              }
              extensions = terminator;
          }
  #ifdef _GLAD_IS_SOME_NEW_VERSION
      } else {
          int index;
          if(exts_i == NULL) return 0;
          for(index = 0; index < num_exts_i; index++) {
              const char *e = exts_i[index];
  
              if(exts_i[index] != NULL && strcmp(e, ext) == 0) {
                  return 1;
              }
          }
      }
  #endif
  
      return 0;
  }
  int GLAD_GL_VERSION_1_0 = 0;
  int GLAD_GL_VERSION_1_1 = 0;
  int GLAD_GL_VERSION_1_2 = 0;
  int GLAD_GL_VERSION_1_3 = 0;
  int GLAD_GL_VERSION_1_4 = 0;
  int GLAD_GL_VERSION_1_5 = 0;
  int GLAD_GL_VERSION_2_0 = 0;
  int GLAD_GL_VERSION_2_1 = 0;
  int GLAD_GL_VERSION_3_0 = 0;
  int GLAD_GL_VERSION_3_1 = 0;
  int GLAD_GL_VERSION_3_2 = 0;
  int GLAD_GL_VERSION_3_3 = 0;
  int GLAD_GL_VERSION_4_0 = 0;
  int GLAD_GL_VERSION_4_1 = 0;
  int GLAD_GL_VERSION_4_2 = 0;
  int GLAD_GL_VERSION_4_3 = 0;
  int GLAD_GL_ES_VERSION_2_0 = 0;
  int GLAD_GL_ES_VERSION_3_0 = 0;
  int GLAD_GL_ES_VERSION_3_1 = 0;
  PFNGLACCUMPROC glad_glAccum;
  void APIENTRY glad_debug_impl_glAccum(GLenum arg0, GLfloat arg1) {    
      _pre_call_callback_gl("glAccum", (void*)glAccum, 2, arg0, arg1);
       glad_glAccum(arg0, arg1);
      _post_call_callback_gl("glAccum", (void*)glAccum, 2, arg0, arg1);
      
  }
  PFNGLACCUMPROC glad_debug_glAccum = glad_debug_impl_glAccum;
  PFNGLACTIVESHADERPROGRAMPROC glad_glActiveShaderProgram;
  void APIENTRY glad_debug_impl_glActiveShaderProgram(GLuint arg0, GLuint arg1) {    
      _pre_call_callback_gl("glActiveShaderProgram", (void*)glActiveShaderProgram, 2, arg0, arg1);
       glad_glActiveShaderProgram(arg0, arg1);
      _post_call_callback_gl("glActiveShaderProgram", (void*)glActiveShaderProgram, 2, arg0, arg1);
      
  }
  PFNGLACTIVESHADERPROGRAMPROC glad_debug_glActiveShaderProgram = glad_debug_impl_glActiveShaderProgram;
  PFNGLACTIVETEXTUREPROC glad_glActiveTexture;
  void APIENTRY glad_debug_impl_glActiveTexture(GLenum arg0) {    
      _pre_call_callback_gl("glActiveTexture", (void*)glActiveTexture, 1, arg0);
       glad_glActiveTexture(arg0);
      _post_call_callback_gl("glActiveTexture", (void*)glActiveTexture, 1, arg0);
      
  }
  PFNGLACTIVETEXTUREPROC glad_debug_glActiveTexture = glad_debug_impl_glActiveTexture;
  PFNGLALPHAFUNCPROC glad_glAlphaFunc;
  void APIENTRY glad_debug_impl_glAlphaFunc(GLenum arg0, GLfloat arg1) {    
      _pre_call_callback_gl("glAlphaFunc", (void*)glAlphaFunc, 2, arg0, arg1);
       glad_glAlphaFunc(arg0, arg1);
      _post_call_callback_gl("glAlphaFunc", (void*)glAlphaFunc, 2, arg0, arg1);
      
  }
  PFNGLALPHAFUNCPROC glad_debug_glAlphaFunc = glad_debug_impl_glAlphaFunc;
  PFNGLARETEXTURESRESIDENTPROC glad_glAreTexturesResident;
  GLboolean APIENTRY glad_debug_impl_glAreTexturesResident(GLsizei arg0, const GLuint * arg1, GLboolean * arg2) {    
      GLboolean ret;
      _pre_call_callback_gl("glAreTexturesResident", (void*)glAreTexturesResident, 3, arg0, arg1, arg2);
      ret =  glad_glAreTexturesResident(arg0, arg1, arg2);
      _post_call_callback_gl("glAreTexturesResident", (void*)glAreTexturesResident, 3, arg0, arg1, arg2);
      return ret;
  }
  PFNGLARETEXTURESRESIDENTPROC glad_debug_glAreTexturesResident = glad_debug_impl_glAreTexturesResident;
  PFNGLARRAYELEMENTPROC glad_glArrayElement;
  void APIENTRY glad_debug_impl_glArrayElement(GLint arg0) {    
      _pre_call_callback_gl("glArrayElement", (void*)glArrayElement, 1, arg0);
       glad_glArrayElement(arg0);
      _post_call_callback_gl("glArrayElement", (void*)glArrayElement, 1, arg0);
      
  }
  PFNGLARRAYELEMENTPROC glad_debug_glArrayElement = glad_debug_impl_glArrayElement;
  PFNGLATTACHSHADERPROC glad_glAttachShader;
  void APIENTRY glad_debug_impl_glAttachShader(GLuint arg0, GLuint arg1) {    
      _pre_call_callback_gl("glAttachShader", (void*)glAttachShader, 2, arg0, arg1);
       glad_glAttachShader(arg0, arg1);
      _post_call_callback_gl("glAttachShader", (void*)glAttachShader, 2, arg0, arg1);
      
  }
  PFNGLATTACHSHADERPROC glad_debug_glAttachShader = glad_debug_impl_glAttachShader;
  PFNGLBEGINPROC glad_glBegin;
  void APIENTRY glad_debug_impl_glBegin(GLenum arg0) {    
      _pre_call_callback_gl("glBegin", (void*)glBegin, 1, arg0);
       glad_glBegin(arg0);
      _post_call_callback_gl("glBegin", (void*)glBegin, 1, arg0);
      
  }
  PFNGLBEGINPROC glad_debug_glBegin = glad_debug_impl_glBegin;
  PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender;
  void APIENTRY glad_debug_impl_glBeginConditionalRender(GLuint arg0, GLenum arg1) {    
      _pre_call_callback_gl("glBeginConditionalRender", (void*)glBeginConditionalRender, 2, arg0, arg1);
       glad_glBeginConditionalRender(arg0, arg1);
      _post_call_callback_gl("glBeginConditionalRender", (void*)glBeginConditionalRender, 2, arg0, arg1);
      
  }
  PFNGLBEGINCONDITIONALRENDERPROC glad_debug_glBeginConditionalRender = glad_debug_impl_glBeginConditionalRender;
  PFNGLBEGINQUERYPROC glad_glBeginQuery;
  void APIENTRY glad_debug_impl_glBeginQuery(GLenum arg0, GLuint arg1) {    
      _pre_call_callback_gl("glBeginQuery", (void*)glBeginQuery, 2, arg0, arg1);
       glad_glBeginQuery(arg0, arg1);
      _post_call_callback_gl("glBeginQuery", (void*)glBeginQuery, 2, arg0, arg1);
      
  }
  PFNGLBEGINQUERYPROC glad_debug_glBeginQuery = glad_debug_impl_glBeginQuery;
  PFNGLBEGINQUERYINDEXEDPROC glad_glBeginQueryIndexed;
  void APIENTRY glad_debug_impl_glBeginQueryIndexed(GLenum arg0, GLuint arg1, GLuint arg2) {    
      _pre_call_callback_gl("glBeginQueryIndexed", (void*)glBeginQueryIndexed, 3, arg0, arg1, arg2);
       glad_glBeginQueryIndexed(arg0, arg1, arg2);
      _post_call_callback_gl("glBeginQueryIndexed", (void*)glBeginQueryIndexed, 3, arg0, arg1, arg2);
      
  }
  PFNGLBEGINQUERYINDEXEDPROC glad_debug_glBeginQueryIndexed = glad_debug_impl_glBeginQueryIndexed;
  PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback;
  void APIENTRY glad_debug_impl_glBeginTransformFeedback(GLenum arg0) {    
      _pre_call_callback_gl("glBeginTransformFeedback", (void*)glBeginTransformFeedback, 1, arg0);
       glad_glBeginTransformFeedback(arg0);
      _post_call_callback_gl("glBeginTransformFeedback", (void*)glBeginTransformFeedback, 1, arg0);
      
  }
  PFNGLBEGINTRANSFORMFEEDBACKPROC glad_debug_glBeginTransformFeedback = glad_debug_impl_glBeginTransformFeedback;
  PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation;
  void APIENTRY glad_debug_impl_glBindAttribLocation(GLuint arg0, GLuint arg1, const GLchar * arg2) {    
      _pre_call_callback_gl("glBindAttribLocation", (void*)glBindAttribLocation, 3, arg0, arg1, arg2);
       glad_glBindAttribLocation(arg0, arg1, arg2);
      _post_call_callback_gl("glBindAttribLocation", (void*)glBindAttribLocation, 3, arg0, arg1, arg2);
      
  }
  PFNGLBINDATTRIBLOCATIONPROC glad_debug_glBindAttribLocation = glad_debug_impl_glBindAttribLocation;
  PFNGLBINDBUFFERPROC glad_glBindBuffer;
  void APIENTRY glad_debug_impl_glBindBuffer(GLenum arg0, GLuint arg1) {    
      _pre_call_callback_gl("glBindBuffer", (void*)glBindBuffer, 2, arg0, arg1);
       glad_glBindBuffer(arg0, arg1);
      _post_call_callback_gl("glBindBuffer", (void*)glBindBuffer, 2, arg0, arg1);
      
  }
  PFNGLBINDBUFFERPROC glad_debug_glBindBuffer = glad_debug_impl_glBindBuffer;
  PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase;
  void APIENTRY glad_debug_impl_glBindBufferBase(GLenum arg0, GLuint arg1, GLuint arg2) {    
      _pre_call_callback_gl("glBindBufferBase", (void*)glBindBufferBase, 3, arg0, arg1, arg2);
       glad_glBindBufferBase(arg0, arg1, arg2);
      _post_call_callback_gl("glBindBufferBase", (void*)glBindBufferBase, 3, arg0, arg1, arg2);
      
  }
  PFNGLBINDBUFFERBASEPROC glad_debug_glBindBufferBase = glad_debug_impl_glBindBufferBase;
  PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange;
  void APIENTRY glad_debug_impl_glBindBufferRange(GLenum arg0, GLuint arg1, GLuint arg2, GLintptr arg3, GLsizeiptr arg4) {    
      _pre_call_callback_gl("glBindBufferRange", (void*)glBindBufferRange, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glBindBufferRange(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glBindBufferRange", (void*)glBindBufferRange, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLBINDBUFFERRANGEPROC glad_debug_glBindBufferRange = glad_debug_impl_glBindBufferRange;
  PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation;
  void APIENTRY glad_debug_impl_glBindFragDataLocation(GLuint arg0, GLuint arg1, const GLchar * arg2) {    
      _pre_call_callback_gl("glBindFragDataLocation", (void*)glBindFragDataLocation, 3, arg0, arg1, arg2);
       glad_glBindFragDataLocation(arg0, arg1, arg2);
      _post_call_callback_gl("glBindFragDataLocation", (void*)glBindFragDataLocation, 3, arg0, arg1, arg2);
      
  }
  PFNGLBINDFRAGDATALOCATIONPROC glad_debug_glBindFragDataLocation = glad_debug_impl_glBindFragDataLocation;
  PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed;
  void APIENTRY glad_debug_impl_glBindFragDataLocationIndexed(GLuint arg0, GLuint arg1, GLuint arg2, const GLchar * arg3) {    
      _pre_call_callback_gl("glBindFragDataLocationIndexed", (void*)glBindFragDataLocationIndexed, 4, arg0, arg1, arg2, arg3);
       glad_glBindFragDataLocationIndexed(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glBindFragDataLocationIndexed", (void*)glBindFragDataLocationIndexed, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_debug_glBindFragDataLocationIndexed = glad_debug_impl_glBindFragDataLocationIndexed;
  PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer;
  void APIENTRY glad_debug_impl_glBindFramebuffer(GLenum arg0, GLuint arg1) {    
      _pre_call_callback_gl("glBindFramebuffer", (void*)glBindFramebuffer, 2, arg0, arg1);
       glad_glBindFramebuffer(arg0, arg1);
      _post_call_callback_gl("glBindFramebuffer", (void*)glBindFramebuffer, 2, arg0, arg1);
      
  }
  PFNGLBINDFRAMEBUFFERPROC glad_debug_glBindFramebuffer = glad_debug_impl_glBindFramebuffer;
  PFNGLBINDIMAGETEXTUREPROC glad_glBindImageTexture;
  void APIENTRY glad_debug_impl_glBindImageTexture(GLuint arg0, GLuint arg1, GLint arg2, GLboolean arg3, GLint arg4, GLenum arg5, GLenum arg6) {    
      _pre_call_callback_gl("glBindImageTexture", (void*)glBindImageTexture, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
       glad_glBindImageTexture(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      _post_call_callback_gl("glBindImageTexture", (void*)glBindImageTexture, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      
  }
  PFNGLBINDIMAGETEXTUREPROC glad_debug_glBindImageTexture = glad_debug_impl_glBindImageTexture;
  PFNGLBINDPROGRAMPIPELINEPROC glad_glBindProgramPipeline;
  void APIENTRY glad_debug_impl_glBindProgramPipeline(GLuint arg0) {    
      _pre_call_callback_gl("glBindProgramPipeline", (void*)glBindProgramPipeline, 1, arg0);
       glad_glBindProgramPipeline(arg0);
      _post_call_callback_gl("glBindProgramPipeline", (void*)glBindProgramPipeline, 1, arg0);
      
  }
  PFNGLBINDPROGRAMPIPELINEPROC glad_debug_glBindProgramPipeline = glad_debug_impl_glBindProgramPipeline;
  PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer;
  void APIENTRY glad_debug_impl_glBindRenderbuffer(GLenum arg0, GLuint arg1) {    
      _pre_call_callback_gl("glBindRenderbuffer", (void*)glBindRenderbuffer, 2, arg0, arg1);
       glad_glBindRenderbuffer(arg0, arg1);
      _post_call_callback_gl("glBindRenderbuffer", (void*)glBindRenderbuffer, 2, arg0, arg1);
      
  }
  PFNGLBINDRENDERBUFFERPROC glad_debug_glBindRenderbuffer = glad_debug_impl_glBindRenderbuffer;
  PFNGLBINDSAMPLERPROC glad_glBindSampler;
  void APIENTRY glad_debug_impl_glBindSampler(GLuint arg0, GLuint arg1) {    
      _pre_call_callback_gl("glBindSampler", (void*)glBindSampler, 2, arg0, arg1);
       glad_glBindSampler(arg0, arg1);
      _post_call_callback_gl("glBindSampler", (void*)glBindSampler, 2, arg0, arg1);
      
  }
  PFNGLBINDSAMPLERPROC glad_debug_glBindSampler = glad_debug_impl_glBindSampler;
  PFNGLBINDTEXTUREPROC glad_glBindTexture;
  void APIENTRY glad_debug_impl_glBindTexture(GLenum arg0, GLuint arg1) {    
      _pre_call_callback_gl("glBindTexture", (void*)glBindTexture, 2, arg0, arg1);
       glad_glBindTexture(arg0, arg1);
      _post_call_callback_gl("glBindTexture", (void*)glBindTexture, 2, arg0, arg1);
      
  }
  PFNGLBINDTEXTUREPROC glad_debug_glBindTexture = glad_debug_impl_glBindTexture;
  PFNGLBINDTRANSFORMFEEDBACKPROC glad_glBindTransformFeedback;
  void APIENTRY glad_debug_impl_glBindTransformFeedback(GLenum arg0, GLuint arg1) {    
      _pre_call_callback_gl("glBindTransformFeedback", (void*)glBindTransformFeedback, 2, arg0, arg1);
       glad_glBindTransformFeedback(arg0, arg1);
      _post_call_callback_gl("glBindTransformFeedback", (void*)glBindTransformFeedback, 2, arg0, arg1);
      
  }
  PFNGLBINDTRANSFORMFEEDBACKPROC glad_debug_glBindTransformFeedback = glad_debug_impl_glBindTransformFeedback;
  PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray;
  void APIENTRY glad_debug_impl_glBindVertexArray(GLuint arg0) {    
      _pre_call_callback_gl("glBindVertexArray", (void*)glBindVertexArray, 1, arg0);
       glad_glBindVertexArray(arg0);
      _post_call_callback_gl("glBindVertexArray", (void*)glBindVertexArray, 1, arg0);
      
  }
  PFNGLBINDVERTEXARRAYPROC glad_debug_glBindVertexArray = glad_debug_impl_glBindVertexArray;
  PFNGLBINDVERTEXBUFFERPROC glad_glBindVertexBuffer;
  void APIENTRY glad_debug_impl_glBindVertexBuffer(GLuint arg0, GLuint arg1, GLintptr arg2, GLsizei arg3) {    
      _pre_call_callback_gl("glBindVertexBuffer", (void*)glBindVertexBuffer, 4, arg0, arg1, arg2, arg3);
       glad_glBindVertexBuffer(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glBindVertexBuffer", (void*)glBindVertexBuffer, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLBINDVERTEXBUFFERPROC glad_debug_glBindVertexBuffer = glad_debug_impl_glBindVertexBuffer;
  PFNGLBITMAPPROC glad_glBitmap;
  void APIENTRY glad_debug_impl_glBitmap(GLsizei arg0, GLsizei arg1, GLfloat arg2, GLfloat arg3, GLfloat arg4, GLfloat arg5, const GLubyte * arg6) {    
      _pre_call_callback_gl("glBitmap", (void*)glBitmap, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
       glad_glBitmap(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      _post_call_callback_gl("glBitmap", (void*)glBitmap, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      
  }
  PFNGLBITMAPPROC glad_debug_glBitmap = glad_debug_impl_glBitmap;
  PFNGLBLENDCOLORPROC glad_glBlendColor;
  void APIENTRY glad_debug_impl_glBlendColor(GLfloat arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3) {    
      _pre_call_callback_gl("glBlendColor", (void*)glBlendColor, 4, arg0, arg1, arg2, arg3);
       glad_glBlendColor(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glBlendColor", (void*)glBlendColor, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLBLENDCOLORPROC glad_debug_glBlendColor = glad_debug_impl_glBlendColor;
  PFNGLBLENDEQUATIONPROC glad_glBlendEquation;
  void APIENTRY glad_debug_impl_glBlendEquation(GLenum arg0) {    
      _pre_call_callback_gl("glBlendEquation", (void*)glBlendEquation, 1, arg0);
       glad_glBlendEquation(arg0);
      _post_call_callback_gl("glBlendEquation", (void*)glBlendEquation, 1, arg0);
      
  }
  PFNGLBLENDEQUATIONPROC glad_debug_glBlendEquation = glad_debug_impl_glBlendEquation;
  PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate;
  void APIENTRY glad_debug_impl_glBlendEquationSeparate(GLenum arg0, GLenum arg1) {    
      _pre_call_callback_gl("glBlendEquationSeparate", (void*)glBlendEquationSeparate, 2, arg0, arg1);
       glad_glBlendEquationSeparate(arg0, arg1);
      _post_call_callback_gl("glBlendEquationSeparate", (void*)glBlendEquationSeparate, 2, arg0, arg1);
      
  }
  PFNGLBLENDEQUATIONSEPARATEPROC glad_debug_glBlendEquationSeparate = glad_debug_impl_glBlendEquationSeparate;
  PFNGLBLENDEQUATIONSEPARATEIPROC glad_glBlendEquationSeparatei;
  void APIENTRY glad_debug_impl_glBlendEquationSeparatei(GLuint arg0, GLenum arg1, GLenum arg2) {    
      _pre_call_callback_gl("glBlendEquationSeparatei", (void*)glBlendEquationSeparatei, 3, arg0, arg1, arg2);
       glad_glBlendEquationSeparatei(arg0, arg1, arg2);
      _post_call_callback_gl("glBlendEquationSeparatei", (void*)glBlendEquationSeparatei, 3, arg0, arg1, arg2);
      
  }
  PFNGLBLENDEQUATIONSEPARATEIPROC glad_debug_glBlendEquationSeparatei = glad_debug_impl_glBlendEquationSeparatei;
  PFNGLBLENDEQUATIONIPROC glad_glBlendEquationi;
  void APIENTRY glad_debug_impl_glBlendEquationi(GLuint arg0, GLenum arg1) {    
      _pre_call_callback_gl("glBlendEquationi", (void*)glBlendEquationi, 2, arg0, arg1);
       glad_glBlendEquationi(arg0, arg1);
      _post_call_callback_gl("glBlendEquationi", (void*)glBlendEquationi, 2, arg0, arg1);
      
  }
  PFNGLBLENDEQUATIONIPROC glad_debug_glBlendEquationi = glad_debug_impl_glBlendEquationi;
  PFNGLBLENDFUNCPROC glad_glBlendFunc;
  void APIENTRY glad_debug_impl_glBlendFunc(GLenum arg0, GLenum arg1) {    
      _pre_call_callback_gl("glBlendFunc", (void*)glBlendFunc, 2, arg0, arg1);
       glad_glBlendFunc(arg0, arg1);
      _post_call_callback_gl("glBlendFunc", (void*)glBlendFunc, 2, arg0, arg1);
      
  }
  PFNGLBLENDFUNCPROC glad_debug_glBlendFunc = glad_debug_impl_glBlendFunc;
  PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate;
  void APIENTRY glad_debug_impl_glBlendFuncSeparate(GLenum arg0, GLenum arg1, GLenum arg2, GLenum arg3) {    
      _pre_call_callback_gl("glBlendFuncSeparate", (void*)glBlendFuncSeparate, 4, arg0, arg1, arg2, arg3);
       glad_glBlendFuncSeparate(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glBlendFuncSeparate", (void*)glBlendFuncSeparate, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLBLENDFUNCSEPARATEPROC glad_debug_glBlendFuncSeparate = glad_debug_impl_glBlendFuncSeparate;
  PFNGLBLENDFUNCSEPARATEIPROC glad_glBlendFuncSeparatei;
  void APIENTRY glad_debug_impl_glBlendFuncSeparatei(GLuint arg0, GLenum arg1, GLenum arg2, GLenum arg3, GLenum arg4) {    
      _pre_call_callback_gl("glBlendFuncSeparatei", (void*)glBlendFuncSeparatei, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glBlendFuncSeparatei(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glBlendFuncSeparatei", (void*)glBlendFuncSeparatei, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLBLENDFUNCSEPARATEIPROC glad_debug_glBlendFuncSeparatei = glad_debug_impl_glBlendFuncSeparatei;
  PFNGLBLENDFUNCIPROC glad_glBlendFunci;
  void APIENTRY glad_debug_impl_glBlendFunci(GLuint arg0, GLenum arg1, GLenum arg2) {    
      _pre_call_callback_gl("glBlendFunci", (void*)glBlendFunci, 3, arg0, arg1, arg2);
       glad_glBlendFunci(arg0, arg1, arg2);
      _post_call_callback_gl("glBlendFunci", (void*)glBlendFunci, 3, arg0, arg1, arg2);
      
  }
  PFNGLBLENDFUNCIPROC glad_debug_glBlendFunci = glad_debug_impl_glBlendFunci;
  PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer;
  void APIENTRY glad_debug_impl_glBlitFramebuffer(GLint arg0, GLint arg1, GLint arg2, GLint arg3, GLint arg4, GLint arg5, GLint arg6, GLint arg7, GLbitfield arg8, GLenum arg9) {    
      _pre_call_callback_gl("glBlitFramebuffer", (void*)glBlitFramebuffer, 10, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
       glad_glBlitFramebuffer(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
      _post_call_callback_gl("glBlitFramebuffer", (void*)glBlitFramebuffer, 10, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
      
  }
  PFNGLBLITFRAMEBUFFERPROC glad_debug_glBlitFramebuffer = glad_debug_impl_glBlitFramebuffer;
  PFNGLBUFFERDATAPROC glad_glBufferData;
  void APIENTRY glad_debug_impl_glBufferData(GLenum arg0, GLsizeiptr arg1, const void * arg2, GLenum arg3) {    
      _pre_call_callback_gl("glBufferData", (void*)glBufferData, 4, arg0, arg1, arg2, arg3);
       glad_glBufferData(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glBufferData", (void*)glBufferData, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLBUFFERDATAPROC glad_debug_glBufferData = glad_debug_impl_glBufferData;
  PFNGLBUFFERSUBDATAPROC glad_glBufferSubData;
  void APIENTRY glad_debug_impl_glBufferSubData(GLenum arg0, GLintptr arg1, GLsizeiptr arg2, const void * arg3) {    
      _pre_call_callback_gl("glBufferSubData", (void*)glBufferSubData, 4, arg0, arg1, arg2, arg3);
       glad_glBufferSubData(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glBufferSubData", (void*)glBufferSubData, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLBUFFERSUBDATAPROC glad_debug_glBufferSubData = glad_debug_impl_glBufferSubData;
  PFNGLCALLLISTPROC glad_glCallList;
  void APIENTRY glad_debug_impl_glCallList(GLuint arg0) {    
      _pre_call_callback_gl("glCallList", (void*)glCallList, 1, arg0);
       glad_glCallList(arg0);
      _post_call_callback_gl("glCallList", (void*)glCallList, 1, arg0);
      
  }
  PFNGLCALLLISTPROC glad_debug_glCallList = glad_debug_impl_glCallList;
  PFNGLCALLLISTSPROC glad_glCallLists;
  void APIENTRY glad_debug_impl_glCallLists(GLsizei arg0, GLenum arg1, const void * arg2) {    
      _pre_call_callback_gl("glCallLists", (void*)glCallLists, 3, arg0, arg1, arg2);
       glad_glCallLists(arg0, arg1, arg2);
      _post_call_callback_gl("glCallLists", (void*)glCallLists, 3, arg0, arg1, arg2);
      
  }
  PFNGLCALLLISTSPROC glad_debug_glCallLists = glad_debug_impl_glCallLists;
  PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus;
  GLenum APIENTRY glad_debug_impl_glCheckFramebufferStatus(GLenum arg0) {    
      GLenum ret;
      _pre_call_callback_gl("glCheckFramebufferStatus", (void*)glCheckFramebufferStatus, 1, arg0);
      ret =  glad_glCheckFramebufferStatus(arg0);
      _post_call_callback_gl("glCheckFramebufferStatus", (void*)glCheckFramebufferStatus, 1, arg0);
      return ret;
  }
  PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_debug_glCheckFramebufferStatus = glad_debug_impl_glCheckFramebufferStatus;
  PFNGLCLAMPCOLORPROC glad_glClampColor;
  void APIENTRY glad_debug_impl_glClampColor(GLenum arg0, GLenum arg1) {    
      _pre_call_callback_gl("glClampColor", (void*)glClampColor, 2, arg0, arg1);
       glad_glClampColor(arg0, arg1);
      _post_call_callback_gl("glClampColor", (void*)glClampColor, 2, arg0, arg1);
      
  }
  PFNGLCLAMPCOLORPROC glad_debug_glClampColor = glad_debug_impl_glClampColor;
  PFNGLCLEARPROC glad_glClear;
  void APIENTRY glad_debug_impl_glClear(GLbitfield arg0) {    
      _pre_call_callback_gl("glClear", (void*)glClear, 1, arg0);
       glad_glClear(arg0);
      _post_call_callback_gl("glClear", (void*)glClear, 1, arg0);
      
  }
  PFNGLCLEARPROC glad_debug_glClear = glad_debug_impl_glClear;
  PFNGLCLEARACCUMPROC glad_glClearAccum;
  void APIENTRY glad_debug_impl_glClearAccum(GLfloat arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3) {    
      _pre_call_callback_gl("glClearAccum", (void*)glClearAccum, 4, arg0, arg1, arg2, arg3);
       glad_glClearAccum(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glClearAccum", (void*)glClearAccum, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLCLEARACCUMPROC glad_debug_glClearAccum = glad_debug_impl_glClearAccum;
  PFNGLCLEARBUFFERDATAPROC glad_glClearBufferData;
  void APIENTRY glad_debug_impl_glClearBufferData(GLenum arg0, GLenum arg1, GLenum arg2, GLenum arg3, const void * arg4) {    
      _pre_call_callback_gl("glClearBufferData", (void*)glClearBufferData, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glClearBufferData(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glClearBufferData", (void*)glClearBufferData, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLCLEARBUFFERDATAPROC glad_debug_glClearBufferData = glad_debug_impl_glClearBufferData;
  PFNGLCLEARBUFFERSUBDATAPROC glad_glClearBufferSubData;
  void APIENTRY glad_debug_impl_glClearBufferSubData(GLenum arg0, GLenum arg1, GLintptr arg2, GLsizeiptr arg3, GLenum arg4, GLenum arg5, const void * arg6) {    
      _pre_call_callback_gl("glClearBufferSubData", (void*)glClearBufferSubData, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
       glad_glClearBufferSubData(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      _post_call_callback_gl("glClearBufferSubData", (void*)glClearBufferSubData, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      
  }
  PFNGLCLEARBUFFERSUBDATAPROC glad_debug_glClearBufferSubData = glad_debug_impl_glClearBufferSubData;
  PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi;
  void APIENTRY glad_debug_impl_glClearBufferfi(GLenum arg0, GLint arg1, GLfloat arg2, GLint arg3) {    
      _pre_call_callback_gl("glClearBufferfi", (void*)glClearBufferfi, 4, arg0, arg1, arg2, arg3);
       glad_glClearBufferfi(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glClearBufferfi", (void*)glClearBufferfi, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLCLEARBUFFERFIPROC glad_debug_glClearBufferfi = glad_debug_impl_glClearBufferfi;
  PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv;
  void APIENTRY glad_debug_impl_glClearBufferfv(GLenum arg0, GLint arg1, const GLfloat * arg2) {    
      _pre_call_callback_gl("glClearBufferfv", (void*)glClearBufferfv, 3, arg0, arg1, arg2);
       glad_glClearBufferfv(arg0, arg1, arg2);
      _post_call_callback_gl("glClearBufferfv", (void*)glClearBufferfv, 3, arg0, arg1, arg2);
      
  }
  PFNGLCLEARBUFFERFVPROC glad_debug_glClearBufferfv = glad_debug_impl_glClearBufferfv;
  PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv;
  void APIENTRY glad_debug_impl_glClearBufferiv(GLenum arg0, GLint arg1, const GLint * arg2) {    
      _pre_call_callback_gl("glClearBufferiv", (void*)glClearBufferiv, 3, arg0, arg1, arg2);
       glad_glClearBufferiv(arg0, arg1, arg2);
      _post_call_callback_gl("glClearBufferiv", (void*)glClearBufferiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLCLEARBUFFERIVPROC glad_debug_glClearBufferiv = glad_debug_impl_glClearBufferiv;
  PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv;
  void APIENTRY glad_debug_impl_glClearBufferuiv(GLenum arg0, GLint arg1, const GLuint * arg2) {    
      _pre_call_callback_gl("glClearBufferuiv", (void*)glClearBufferuiv, 3, arg0, arg1, arg2);
       glad_glClearBufferuiv(arg0, arg1, arg2);
      _post_call_callback_gl("glClearBufferuiv", (void*)glClearBufferuiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLCLEARBUFFERUIVPROC glad_debug_glClearBufferuiv = glad_debug_impl_glClearBufferuiv;
  PFNGLCLEARCOLORPROC glad_glClearColor;
  void APIENTRY glad_debug_impl_glClearColor(GLfloat arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3) {    
      _pre_call_callback_gl("glClearColor", (void*)glClearColor, 4, arg0, arg1, arg2, arg3);
       glad_glClearColor(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glClearColor", (void*)glClearColor, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLCLEARCOLORPROC glad_debug_glClearColor = glad_debug_impl_glClearColor;
  PFNGLCLEARDEPTHPROC glad_glClearDepth;
  void APIENTRY glad_debug_impl_glClearDepth(GLdouble arg0) {    
      _pre_call_callback_gl("glClearDepth", (void*)glClearDepth, 1, arg0);
       glad_glClearDepth(arg0);
      _post_call_callback_gl("glClearDepth", (void*)glClearDepth, 1, arg0);
      
  }
  PFNGLCLEARDEPTHPROC glad_debug_glClearDepth = glad_debug_impl_glClearDepth;
  PFNGLCLEARDEPTHFPROC glad_glClearDepthf;
  void APIENTRY glad_debug_impl_glClearDepthf(GLfloat arg0) {    
      _pre_call_callback_gl("glClearDepthf", (void*)glClearDepthf, 1, arg0);
       glad_glClearDepthf(arg0);
      _post_call_callback_gl("glClearDepthf", (void*)glClearDepthf, 1, arg0);
      
  }
  PFNGLCLEARDEPTHFPROC glad_debug_glClearDepthf = glad_debug_impl_glClearDepthf;
  PFNGLCLEARINDEXPROC glad_glClearIndex;
  void APIENTRY glad_debug_impl_glClearIndex(GLfloat arg0) {    
      _pre_call_callback_gl("glClearIndex", (void*)glClearIndex, 1, arg0);
       glad_glClearIndex(arg0);
      _post_call_callback_gl("glClearIndex", (void*)glClearIndex, 1, arg0);
      
  }
  PFNGLCLEARINDEXPROC glad_debug_glClearIndex = glad_debug_impl_glClearIndex;
  PFNGLCLEARSTENCILPROC glad_glClearStencil;
  void APIENTRY glad_debug_impl_glClearStencil(GLint arg0) {    
      _pre_call_callback_gl("glClearStencil", (void*)glClearStencil, 1, arg0);
       glad_glClearStencil(arg0);
      _post_call_callback_gl("glClearStencil", (void*)glClearStencil, 1, arg0);
      
  }
  PFNGLCLEARSTENCILPROC glad_debug_glClearStencil = glad_debug_impl_glClearStencil;
  PFNGLCLIENTACTIVETEXTUREPROC glad_glClientActiveTexture;
  void APIENTRY glad_debug_impl_glClientActiveTexture(GLenum arg0) {    
      _pre_call_callback_gl("glClientActiveTexture", (void*)glClientActiveTexture, 1, arg0);
       glad_glClientActiveTexture(arg0);
      _post_call_callback_gl("glClientActiveTexture", (void*)glClientActiveTexture, 1, arg0);
      
  }
  PFNGLCLIENTACTIVETEXTUREPROC glad_debug_glClientActiveTexture = glad_debug_impl_glClientActiveTexture;
  PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync;
  GLenum APIENTRY glad_debug_impl_glClientWaitSync(GLsync arg0, GLbitfield arg1, GLuint64 arg2) {    
      GLenum ret;
      _pre_call_callback_gl("glClientWaitSync", (void*)glClientWaitSync, 3, arg0, arg1, arg2);
      ret =  glad_glClientWaitSync(arg0, arg1, arg2);
      _post_call_callback_gl("glClientWaitSync", (void*)glClientWaitSync, 3, arg0, arg1, arg2);
      return ret;
  }
  PFNGLCLIENTWAITSYNCPROC glad_debug_glClientWaitSync = glad_debug_impl_glClientWaitSync;
  PFNGLCLIPPLANEPROC glad_glClipPlane;
  void APIENTRY glad_debug_impl_glClipPlane(GLenum arg0, const GLdouble * arg1) {    
      _pre_call_callback_gl("glClipPlane", (void*)glClipPlane, 2, arg0, arg1);
       glad_glClipPlane(arg0, arg1);
      _post_call_callback_gl("glClipPlane", (void*)glClipPlane, 2, arg0, arg1);
      
  }
  PFNGLCLIPPLANEPROC glad_debug_glClipPlane = glad_debug_impl_glClipPlane;
  PFNGLCOLOR3BPROC glad_glColor3b;
  void APIENTRY glad_debug_impl_glColor3b(GLbyte arg0, GLbyte arg1, GLbyte arg2) {    
      _pre_call_callback_gl("glColor3b", (void*)glColor3b, 3, arg0, arg1, arg2);
       glad_glColor3b(arg0, arg1, arg2);
      _post_call_callback_gl("glColor3b", (void*)glColor3b, 3, arg0, arg1, arg2);
      
  }
  PFNGLCOLOR3BPROC glad_debug_glColor3b = glad_debug_impl_glColor3b;
  PFNGLCOLOR3BVPROC glad_glColor3bv;
  void APIENTRY glad_debug_impl_glColor3bv(const GLbyte * arg0) {    
      _pre_call_callback_gl("glColor3bv", (void*)glColor3bv, 1, arg0);
       glad_glColor3bv(arg0);
      _post_call_callback_gl("glColor3bv", (void*)glColor3bv, 1, arg0);
      
  }
  PFNGLCOLOR3BVPROC glad_debug_glColor3bv = glad_debug_impl_glColor3bv;
  PFNGLCOLOR3DPROC glad_glColor3d;
  void APIENTRY glad_debug_impl_glColor3d(GLdouble arg0, GLdouble arg1, GLdouble arg2) {    
      _pre_call_callback_gl("glColor3d", (void*)glColor3d, 3, arg0, arg1, arg2);
       glad_glColor3d(arg0, arg1, arg2);
      _post_call_callback_gl("glColor3d", (void*)glColor3d, 3, arg0, arg1, arg2);
      
  }
  PFNGLCOLOR3DPROC glad_debug_glColor3d = glad_debug_impl_glColor3d;
  PFNGLCOLOR3DVPROC glad_glColor3dv;
  void APIENTRY glad_debug_impl_glColor3dv(const GLdouble * arg0) {    
      _pre_call_callback_gl("glColor3dv", (void*)glColor3dv, 1, arg0);
       glad_glColor3dv(arg0);
      _post_call_callback_gl("glColor3dv", (void*)glColor3dv, 1, arg0);
      
  }
  PFNGLCOLOR3DVPROC glad_debug_glColor3dv = glad_debug_impl_glColor3dv;
  PFNGLCOLOR3FPROC glad_glColor3f;
  void APIENTRY glad_debug_impl_glColor3f(GLfloat arg0, GLfloat arg1, GLfloat arg2) {    
      _pre_call_callback_gl("glColor3f", (void*)glColor3f, 3, arg0, arg1, arg2);
       glad_glColor3f(arg0, arg1, arg2);
      _post_call_callback_gl("glColor3f", (void*)glColor3f, 3, arg0, arg1, arg2);
      
  }
  PFNGLCOLOR3FPROC glad_debug_glColor3f = glad_debug_impl_glColor3f;
  PFNGLCOLOR3FVPROC glad_glColor3fv;
  void APIENTRY glad_debug_impl_glColor3fv(const GLfloat * arg0) {    
      _pre_call_callback_gl("glColor3fv", (void*)glColor3fv, 1, arg0);
       glad_glColor3fv(arg0);
      _post_call_callback_gl("glColor3fv", (void*)glColor3fv, 1, arg0);
      
  }
  PFNGLCOLOR3FVPROC glad_debug_glColor3fv = glad_debug_impl_glColor3fv;
  PFNGLCOLOR3IPROC glad_glColor3i;
  void APIENTRY glad_debug_impl_glColor3i(GLint arg0, GLint arg1, GLint arg2) {    
      _pre_call_callback_gl("glColor3i", (void*)glColor3i, 3, arg0, arg1, arg2);
       glad_glColor3i(arg0, arg1, arg2);
      _post_call_callback_gl("glColor3i", (void*)glColor3i, 3, arg0, arg1, arg2);
      
  }
  PFNGLCOLOR3IPROC glad_debug_glColor3i = glad_debug_impl_glColor3i;
  PFNGLCOLOR3IVPROC glad_glColor3iv;
  void APIENTRY glad_debug_impl_glColor3iv(const GLint * arg0) {    
      _pre_call_callback_gl("glColor3iv", (void*)glColor3iv, 1, arg0);
       glad_glColor3iv(arg0);
      _post_call_callback_gl("glColor3iv", (void*)glColor3iv, 1, arg0);
      
  }
  PFNGLCOLOR3IVPROC glad_debug_glColor3iv = glad_debug_impl_glColor3iv;
  PFNGLCOLOR3SPROC glad_glColor3s;
  void APIENTRY glad_debug_impl_glColor3s(GLshort arg0, GLshort arg1, GLshort arg2) {    
      _pre_call_callback_gl("glColor3s", (void*)glColor3s, 3, arg0, arg1, arg2);
       glad_glColor3s(arg0, arg1, arg2);
      _post_call_callback_gl("glColor3s", (void*)glColor3s, 3, arg0, arg1, arg2);
      
  }
  PFNGLCOLOR3SPROC glad_debug_glColor3s = glad_debug_impl_glColor3s;
  PFNGLCOLOR3SVPROC glad_glColor3sv;
  void APIENTRY glad_debug_impl_glColor3sv(const GLshort * arg0) {    
      _pre_call_callback_gl("glColor3sv", (void*)glColor3sv, 1, arg0);
       glad_glColor3sv(arg0);
      _post_call_callback_gl("glColor3sv", (void*)glColor3sv, 1, arg0);
      
  }
  PFNGLCOLOR3SVPROC glad_debug_glColor3sv = glad_debug_impl_glColor3sv;
  PFNGLCOLOR3UBPROC glad_glColor3ub;
  void APIENTRY glad_debug_impl_glColor3ub(GLubyte arg0, GLubyte arg1, GLubyte arg2) {    
      _pre_call_callback_gl("glColor3ub", (void*)glColor3ub, 3, arg0, arg1, arg2);
       glad_glColor3ub(arg0, arg1, arg2);
      _post_call_callback_gl("glColor3ub", (void*)glColor3ub, 3, arg0, arg1, arg2);
      
  }
  PFNGLCOLOR3UBPROC glad_debug_glColor3ub = glad_debug_impl_glColor3ub;
  PFNGLCOLOR3UBVPROC glad_glColor3ubv;
  void APIENTRY glad_debug_impl_glColor3ubv(const GLubyte * arg0) {    
      _pre_call_callback_gl("glColor3ubv", (void*)glColor3ubv, 1, arg0);
       glad_glColor3ubv(arg0);
      _post_call_callback_gl("glColor3ubv", (void*)glColor3ubv, 1, arg0);
      
  }
  PFNGLCOLOR3UBVPROC glad_debug_glColor3ubv = glad_debug_impl_glColor3ubv;
  PFNGLCOLOR3UIPROC glad_glColor3ui;
  void APIENTRY glad_debug_impl_glColor3ui(GLuint arg0, GLuint arg1, GLuint arg2) {    
      _pre_call_callback_gl("glColor3ui", (void*)glColor3ui, 3, arg0, arg1, arg2);
       glad_glColor3ui(arg0, arg1, arg2);
      _post_call_callback_gl("glColor3ui", (void*)glColor3ui, 3, arg0, arg1, arg2);
      
  }
  PFNGLCOLOR3UIPROC glad_debug_glColor3ui = glad_debug_impl_glColor3ui;
  PFNGLCOLOR3UIVPROC glad_glColor3uiv;
  void APIENTRY glad_debug_impl_glColor3uiv(const GLuint * arg0) {    
      _pre_call_callback_gl("glColor3uiv", (void*)glColor3uiv, 1, arg0);
       glad_glColor3uiv(arg0);
      _post_call_callback_gl("glColor3uiv", (void*)glColor3uiv, 1, arg0);
      
  }
  PFNGLCOLOR3UIVPROC glad_debug_glColor3uiv = glad_debug_impl_glColor3uiv;
  PFNGLCOLOR3USPROC glad_glColor3us;
  void APIENTRY glad_debug_impl_glColor3us(GLushort arg0, GLushort arg1, GLushort arg2) {    
      _pre_call_callback_gl("glColor3us", (void*)glColor3us, 3, arg0, arg1, arg2);
       glad_glColor3us(arg0, arg1, arg2);
      _post_call_callback_gl("glColor3us", (void*)glColor3us, 3, arg0, arg1, arg2);
      
  }
  PFNGLCOLOR3USPROC glad_debug_glColor3us = glad_debug_impl_glColor3us;
  PFNGLCOLOR3USVPROC glad_glColor3usv;
  void APIENTRY glad_debug_impl_glColor3usv(const GLushort * arg0) {    
      _pre_call_callback_gl("glColor3usv", (void*)glColor3usv, 1, arg0);
       glad_glColor3usv(arg0);
      _post_call_callback_gl("glColor3usv", (void*)glColor3usv, 1, arg0);
      
  }
  PFNGLCOLOR3USVPROC glad_debug_glColor3usv = glad_debug_impl_glColor3usv;
  PFNGLCOLOR4BPROC glad_glColor4b;
  void APIENTRY glad_debug_impl_glColor4b(GLbyte arg0, GLbyte arg1, GLbyte arg2, GLbyte arg3) {    
      _pre_call_callback_gl("glColor4b", (void*)glColor4b, 4, arg0, arg1, arg2, arg3);
       glad_glColor4b(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glColor4b", (void*)glColor4b, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLCOLOR4BPROC glad_debug_glColor4b = glad_debug_impl_glColor4b;
  PFNGLCOLOR4BVPROC glad_glColor4bv;
  void APIENTRY glad_debug_impl_glColor4bv(const GLbyte * arg0) {    
      _pre_call_callback_gl("glColor4bv", (void*)glColor4bv, 1, arg0);
       glad_glColor4bv(arg0);
      _post_call_callback_gl("glColor4bv", (void*)glColor4bv, 1, arg0);
      
  }
  PFNGLCOLOR4BVPROC glad_debug_glColor4bv = glad_debug_impl_glColor4bv;
  PFNGLCOLOR4DPROC glad_glColor4d;
  void APIENTRY glad_debug_impl_glColor4d(GLdouble arg0, GLdouble arg1, GLdouble arg2, GLdouble arg3) {    
      _pre_call_callback_gl("glColor4d", (void*)glColor4d, 4, arg0, arg1, arg2, arg3);
       glad_glColor4d(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glColor4d", (void*)glColor4d, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLCOLOR4DPROC glad_debug_glColor4d = glad_debug_impl_glColor4d;
  PFNGLCOLOR4DVPROC glad_glColor4dv;
  void APIENTRY glad_debug_impl_glColor4dv(const GLdouble * arg0) {    
      _pre_call_callback_gl("glColor4dv", (void*)glColor4dv, 1, arg0);
       glad_glColor4dv(arg0);
      _post_call_callback_gl("glColor4dv", (void*)glColor4dv, 1, arg0);
      
  }
  PFNGLCOLOR4DVPROC glad_debug_glColor4dv = glad_debug_impl_glColor4dv;
  PFNGLCOLOR4FPROC glad_glColor4f;
  void APIENTRY glad_debug_impl_glColor4f(GLfloat arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3) {    
      _pre_call_callback_gl("glColor4f", (void*)glColor4f, 4, arg0, arg1, arg2, arg3);
       glad_glColor4f(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glColor4f", (void*)glColor4f, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLCOLOR4FPROC glad_debug_glColor4f = glad_debug_impl_glColor4f;
  PFNGLCOLOR4FVPROC glad_glColor4fv;
  void APIENTRY glad_debug_impl_glColor4fv(const GLfloat * arg0) {    
      _pre_call_callback_gl("glColor4fv", (void*)glColor4fv, 1, arg0);
       glad_glColor4fv(arg0);
      _post_call_callback_gl("glColor4fv", (void*)glColor4fv, 1, arg0);
      
  }
  PFNGLCOLOR4FVPROC glad_debug_glColor4fv = glad_debug_impl_glColor4fv;
  PFNGLCOLOR4IPROC glad_glColor4i;
  void APIENTRY glad_debug_impl_glColor4i(GLint arg0, GLint arg1, GLint arg2, GLint arg3) {    
      _pre_call_callback_gl("glColor4i", (void*)glColor4i, 4, arg0, arg1, arg2, arg3);
       glad_glColor4i(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glColor4i", (void*)glColor4i, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLCOLOR4IPROC glad_debug_glColor4i = glad_debug_impl_glColor4i;
  PFNGLCOLOR4IVPROC glad_glColor4iv;
  void APIENTRY glad_debug_impl_glColor4iv(const GLint * arg0) {    
      _pre_call_callback_gl("glColor4iv", (void*)glColor4iv, 1, arg0);
       glad_glColor4iv(arg0);
      _post_call_callback_gl("glColor4iv", (void*)glColor4iv, 1, arg0);
      
  }
  PFNGLCOLOR4IVPROC glad_debug_glColor4iv = glad_debug_impl_glColor4iv;
  PFNGLCOLOR4SPROC glad_glColor4s;
  void APIENTRY glad_debug_impl_glColor4s(GLshort arg0, GLshort arg1, GLshort arg2, GLshort arg3) {    
      _pre_call_callback_gl("glColor4s", (void*)glColor4s, 4, arg0, arg1, arg2, arg3);
       glad_glColor4s(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glColor4s", (void*)glColor4s, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLCOLOR4SPROC glad_debug_glColor4s = glad_debug_impl_glColor4s;
  PFNGLCOLOR4SVPROC glad_glColor4sv;
  void APIENTRY glad_debug_impl_glColor4sv(const GLshort * arg0) {    
      _pre_call_callback_gl("glColor4sv", (void*)glColor4sv, 1, arg0);
       glad_glColor4sv(arg0);
      _post_call_callback_gl("glColor4sv", (void*)glColor4sv, 1, arg0);
      
  }
  PFNGLCOLOR4SVPROC glad_debug_glColor4sv = glad_debug_impl_glColor4sv;
  PFNGLCOLOR4UBPROC glad_glColor4ub;
  void APIENTRY glad_debug_impl_glColor4ub(GLubyte arg0, GLubyte arg1, GLubyte arg2, GLubyte arg3) {    
      _pre_call_callback_gl("glColor4ub", (void*)glColor4ub, 4, arg0, arg1, arg2, arg3);
       glad_glColor4ub(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glColor4ub", (void*)glColor4ub, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLCOLOR4UBPROC glad_debug_glColor4ub = glad_debug_impl_glColor4ub;
  PFNGLCOLOR4UBVPROC glad_glColor4ubv;
  void APIENTRY glad_debug_impl_glColor4ubv(const GLubyte * arg0) {    
      _pre_call_callback_gl("glColor4ubv", (void*)glColor4ubv, 1, arg0);
       glad_glColor4ubv(arg0);
      _post_call_callback_gl("glColor4ubv", (void*)glColor4ubv, 1, arg0);
      
  }
  PFNGLCOLOR4UBVPROC glad_debug_glColor4ubv = glad_debug_impl_glColor4ubv;
  PFNGLCOLOR4UIPROC glad_glColor4ui;
  void APIENTRY glad_debug_impl_glColor4ui(GLuint arg0, GLuint arg1, GLuint arg2, GLuint arg3) {    
      _pre_call_callback_gl("glColor4ui", (void*)glColor4ui, 4, arg0, arg1, arg2, arg3);
       glad_glColor4ui(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glColor4ui", (void*)glColor4ui, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLCOLOR4UIPROC glad_debug_glColor4ui = glad_debug_impl_glColor4ui;
  PFNGLCOLOR4UIVPROC glad_glColor4uiv;
  void APIENTRY glad_debug_impl_glColor4uiv(const GLuint * arg0) {    
      _pre_call_callback_gl("glColor4uiv", (void*)glColor4uiv, 1, arg0);
       glad_glColor4uiv(arg0);
      _post_call_callback_gl("glColor4uiv", (void*)glColor4uiv, 1, arg0);
      
  }
  PFNGLCOLOR4UIVPROC glad_debug_glColor4uiv = glad_debug_impl_glColor4uiv;
  PFNGLCOLOR4USPROC glad_glColor4us;
  void APIENTRY glad_debug_impl_glColor4us(GLushort arg0, GLushort arg1, GLushort arg2, GLushort arg3) {    
      _pre_call_callback_gl("glColor4us", (void*)glColor4us, 4, arg0, arg1, arg2, arg3);
       glad_glColor4us(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glColor4us", (void*)glColor4us, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLCOLOR4USPROC glad_debug_glColor4us = glad_debug_impl_glColor4us;
  PFNGLCOLOR4USVPROC glad_glColor4usv;
  void APIENTRY glad_debug_impl_glColor4usv(const GLushort * arg0) {    
      _pre_call_callback_gl("glColor4usv", (void*)glColor4usv, 1, arg0);
       glad_glColor4usv(arg0);
      _post_call_callback_gl("glColor4usv", (void*)glColor4usv, 1, arg0);
      
  }
  PFNGLCOLOR4USVPROC glad_debug_glColor4usv = glad_debug_impl_glColor4usv;
  PFNGLCOLORMASKPROC glad_glColorMask;
  void APIENTRY glad_debug_impl_glColorMask(GLboolean arg0, GLboolean arg1, GLboolean arg2, GLboolean arg3) {    
      _pre_call_callback_gl("glColorMask", (void*)glColorMask, 4, arg0, arg1, arg2, arg3);
       glad_glColorMask(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glColorMask", (void*)glColorMask, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLCOLORMASKPROC glad_debug_glColorMask = glad_debug_impl_glColorMask;
  PFNGLCOLORMASKIPROC glad_glColorMaski;
  void APIENTRY glad_debug_impl_glColorMaski(GLuint arg0, GLboolean arg1, GLboolean arg2, GLboolean arg3, GLboolean arg4) {    
      _pre_call_callback_gl("glColorMaski", (void*)glColorMaski, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glColorMaski(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glColorMaski", (void*)glColorMaski, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLCOLORMASKIPROC glad_debug_glColorMaski = glad_debug_impl_glColorMaski;
  PFNGLCOLORMATERIALPROC glad_glColorMaterial;
  void APIENTRY glad_debug_impl_glColorMaterial(GLenum arg0, GLenum arg1) {    
      _pre_call_callback_gl("glColorMaterial", (void*)glColorMaterial, 2, arg0, arg1);
       glad_glColorMaterial(arg0, arg1);
      _post_call_callback_gl("glColorMaterial", (void*)glColorMaterial, 2, arg0, arg1);
      
  }
  PFNGLCOLORMATERIALPROC glad_debug_glColorMaterial = glad_debug_impl_glColorMaterial;
  PFNGLCOLORP3UIPROC glad_glColorP3ui;
  void APIENTRY glad_debug_impl_glColorP3ui(GLenum arg0, GLuint arg1) {    
      _pre_call_callback_gl("glColorP3ui", (void*)glColorP3ui, 2, arg0, arg1);
       glad_glColorP3ui(arg0, arg1);
      _post_call_callback_gl("glColorP3ui", (void*)glColorP3ui, 2, arg0, arg1);
      
  }
  PFNGLCOLORP3UIPROC glad_debug_glColorP3ui = glad_debug_impl_glColorP3ui;
  PFNGLCOLORP3UIVPROC glad_glColorP3uiv;
  void APIENTRY glad_debug_impl_glColorP3uiv(GLenum arg0, const GLuint * arg1) {    
      _pre_call_callback_gl("glColorP3uiv", (void*)glColorP3uiv, 2, arg0, arg1);
       glad_glColorP3uiv(arg0, arg1);
      _post_call_callback_gl("glColorP3uiv", (void*)glColorP3uiv, 2, arg0, arg1);
      
  }
  PFNGLCOLORP3UIVPROC glad_debug_glColorP3uiv = glad_debug_impl_glColorP3uiv;
  PFNGLCOLORP4UIPROC glad_glColorP4ui;
  void APIENTRY glad_debug_impl_glColorP4ui(GLenum arg0, GLuint arg1) {    
      _pre_call_callback_gl("glColorP4ui", (void*)glColorP4ui, 2, arg0, arg1);
       glad_glColorP4ui(arg0, arg1);
      _post_call_callback_gl("glColorP4ui", (void*)glColorP4ui, 2, arg0, arg1);
      
  }
  PFNGLCOLORP4UIPROC glad_debug_glColorP4ui = glad_debug_impl_glColorP4ui;
  PFNGLCOLORP4UIVPROC glad_glColorP4uiv;
  void APIENTRY glad_debug_impl_glColorP4uiv(GLenum arg0, const GLuint * arg1) {    
      _pre_call_callback_gl("glColorP4uiv", (void*)glColorP4uiv, 2, arg0, arg1);
       glad_glColorP4uiv(arg0, arg1);
      _post_call_callback_gl("glColorP4uiv", (void*)glColorP4uiv, 2, arg0, arg1);
      
  }
  PFNGLCOLORP4UIVPROC glad_debug_glColorP4uiv = glad_debug_impl_glColorP4uiv;
  PFNGLCOLORPOINTERPROC glad_glColorPointer;
  void APIENTRY glad_debug_impl_glColorPointer(GLint arg0, GLenum arg1, GLsizei arg2, const void * arg3) {    
      _pre_call_callback_gl("glColorPointer", (void*)glColorPointer, 4, arg0, arg1, arg2, arg3);
       glad_glColorPointer(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glColorPointer", (void*)glColorPointer, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLCOLORPOINTERPROC glad_debug_glColorPointer = glad_debug_impl_glColorPointer;
  PFNGLCOMPILESHADERPROC glad_glCompileShader;
  void APIENTRY glad_debug_impl_glCompileShader(GLuint arg0) {    
      _pre_call_callback_gl("glCompileShader", (void*)glCompileShader, 1, arg0);
       glad_glCompileShader(arg0);
      _post_call_callback_gl("glCompileShader", (void*)glCompileShader, 1, arg0);
      
  }
  PFNGLCOMPILESHADERPROC glad_debug_glCompileShader = glad_debug_impl_glCompileShader;
  PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D;
  void APIENTRY glad_debug_impl_glCompressedTexImage1D(GLenum arg0, GLint arg1, GLenum arg2, GLsizei arg3, GLint arg4, GLsizei arg5, const void * arg6) {    
      _pre_call_callback_gl("glCompressedTexImage1D", (void*)glCompressedTexImage1D, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
       glad_glCompressedTexImage1D(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      _post_call_callback_gl("glCompressedTexImage1D", (void*)glCompressedTexImage1D, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      
  }
  PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_debug_glCompressedTexImage1D = glad_debug_impl_glCompressedTexImage1D;
  PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D;
  void APIENTRY glad_debug_impl_glCompressedTexImage2D(GLenum arg0, GLint arg1, GLenum arg2, GLsizei arg3, GLsizei arg4, GLint arg5, GLsizei arg6, const void * arg7) {    
      _pre_call_callback_gl("glCompressedTexImage2D", (void*)glCompressedTexImage2D, 8, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
       glad_glCompressedTexImage2D(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
      _post_call_callback_gl("glCompressedTexImage2D", (void*)glCompressedTexImage2D, 8, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
      
  }
  PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_debug_glCompressedTexImage2D = glad_debug_impl_glCompressedTexImage2D;
  PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D;
  void APIENTRY glad_debug_impl_glCompressedTexImage3D(GLenum arg0, GLint arg1, GLenum arg2, GLsizei arg3, GLsizei arg4, GLsizei arg5, GLint arg6, GLsizei arg7, const void * arg8) {    
      _pre_call_callback_gl("glCompressedTexImage3D", (void*)glCompressedTexImage3D, 9, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
       glad_glCompressedTexImage3D(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
      _post_call_callback_gl("glCompressedTexImage3D", (void*)glCompressedTexImage3D, 9, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
      
  }
  PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_debug_glCompressedTexImage3D = glad_debug_impl_glCompressedTexImage3D;
  PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D;
  void APIENTRY glad_debug_impl_glCompressedTexSubImage1D(GLenum arg0, GLint arg1, GLint arg2, GLsizei arg3, GLenum arg4, GLsizei arg5, const void * arg6) {    
      _pre_call_callback_gl("glCompressedTexSubImage1D", (void*)glCompressedTexSubImage1D, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
       glad_glCompressedTexSubImage1D(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      _post_call_callback_gl("glCompressedTexSubImage1D", (void*)glCompressedTexSubImage1D, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      
  }
  PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_debug_glCompressedTexSubImage1D = glad_debug_impl_glCompressedTexSubImage1D;
  PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D;
  void APIENTRY glad_debug_impl_glCompressedTexSubImage2D(GLenum arg0, GLint arg1, GLint arg2, GLint arg3, GLsizei arg4, GLsizei arg5, GLenum arg6, GLsizei arg7, const void * arg8) {    
      _pre_call_callback_gl("glCompressedTexSubImage2D", (void*)glCompressedTexSubImage2D, 9, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
       glad_glCompressedTexSubImage2D(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
      _post_call_callback_gl("glCompressedTexSubImage2D", (void*)glCompressedTexSubImage2D, 9, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
      
  }
  PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_debug_glCompressedTexSubImage2D = glad_debug_impl_glCompressedTexSubImage2D;
  PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D;
  void APIENTRY glad_debug_impl_glCompressedTexSubImage3D(GLenum arg0, GLint arg1, GLint arg2, GLint arg3, GLint arg4, GLsizei arg5, GLsizei arg6, GLsizei arg7, GLenum arg8, GLsizei arg9, const void * arg10) {    
      _pre_call_callback_gl("glCompressedTexSubImage3D", (void*)glCompressedTexSubImage3D, 11, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
       glad_glCompressedTexSubImage3D(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
      _post_call_callback_gl("glCompressedTexSubImage3D", (void*)glCompressedTexSubImage3D, 11, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
      
  }
  PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_debug_glCompressedTexSubImage3D = glad_debug_impl_glCompressedTexSubImage3D;
  PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData;
  void APIENTRY glad_debug_impl_glCopyBufferSubData(GLenum arg0, GLenum arg1, GLintptr arg2, GLintptr arg3, GLsizeiptr arg4) {    
      _pre_call_callback_gl("glCopyBufferSubData", (void*)glCopyBufferSubData, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glCopyBufferSubData(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glCopyBufferSubData", (void*)glCopyBufferSubData, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLCOPYBUFFERSUBDATAPROC glad_debug_glCopyBufferSubData = glad_debug_impl_glCopyBufferSubData;
  PFNGLCOPYIMAGESUBDATAPROC glad_glCopyImageSubData;
  void APIENTRY glad_debug_impl_glCopyImageSubData(GLuint arg0, GLenum arg1, GLint arg2, GLint arg3, GLint arg4, GLint arg5, GLuint arg6, GLenum arg7, GLint arg8, GLint arg9, GLint arg10, GLint arg11, GLsizei arg12, GLsizei arg13, GLsizei arg14) {    
      _pre_call_callback_gl("glCopyImageSubData", (void*)glCopyImageSubData, 15, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
       glad_glCopyImageSubData(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
      _post_call_callback_gl("glCopyImageSubData", (void*)glCopyImageSubData, 15, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
      
  }
  PFNGLCOPYIMAGESUBDATAPROC glad_debug_glCopyImageSubData = glad_debug_impl_glCopyImageSubData;
  PFNGLCOPYPIXELSPROC glad_glCopyPixels;
  void APIENTRY glad_debug_impl_glCopyPixels(GLint arg0, GLint arg1, GLsizei arg2, GLsizei arg3, GLenum arg4) {    
      _pre_call_callback_gl("glCopyPixels", (void*)glCopyPixels, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glCopyPixels(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glCopyPixels", (void*)glCopyPixels, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLCOPYPIXELSPROC glad_debug_glCopyPixels = glad_debug_impl_glCopyPixels;
  PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D;
  void APIENTRY glad_debug_impl_glCopyTexImage1D(GLenum arg0, GLint arg1, GLenum arg2, GLint arg3, GLint arg4, GLsizei arg5, GLint arg6) {    
      _pre_call_callback_gl("glCopyTexImage1D", (void*)glCopyTexImage1D, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
       glad_glCopyTexImage1D(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      _post_call_callback_gl("glCopyTexImage1D", (void*)glCopyTexImage1D, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      
  }
  PFNGLCOPYTEXIMAGE1DPROC glad_debug_glCopyTexImage1D = glad_debug_impl_glCopyTexImage1D;
  PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D;
  void APIENTRY glad_debug_impl_glCopyTexImage2D(GLenum arg0, GLint arg1, GLenum arg2, GLint arg3, GLint arg4, GLsizei arg5, GLsizei arg6, GLint arg7) {    
      _pre_call_callback_gl("glCopyTexImage2D", (void*)glCopyTexImage2D, 8, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
       glad_glCopyTexImage2D(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
      _post_call_callback_gl("glCopyTexImage2D", (void*)glCopyTexImage2D, 8, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
      
  }
  PFNGLCOPYTEXIMAGE2DPROC glad_debug_glCopyTexImage2D = glad_debug_impl_glCopyTexImage2D;
  PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D;
  void APIENTRY glad_debug_impl_glCopyTexSubImage1D(GLenum arg0, GLint arg1, GLint arg2, GLint arg3, GLint arg4, GLsizei arg5) {    
      _pre_call_callback_gl("glCopyTexSubImage1D", (void*)glCopyTexSubImage1D, 6, arg0, arg1, arg2, arg3, arg4, arg5);
       glad_glCopyTexSubImage1D(arg0, arg1, arg2, arg3, arg4, arg5);
      _post_call_callback_gl("glCopyTexSubImage1D", (void*)glCopyTexSubImage1D, 6, arg0, arg1, arg2, arg3, arg4, arg5);
      
  }
  PFNGLCOPYTEXSUBIMAGE1DPROC glad_debug_glCopyTexSubImage1D = glad_debug_impl_glCopyTexSubImage1D;
  PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D;
  void APIENTRY glad_debug_impl_glCopyTexSubImage2D(GLenum arg0, GLint arg1, GLint arg2, GLint arg3, GLint arg4, GLint arg5, GLsizei arg6, GLsizei arg7) {    
      _pre_call_callback_gl("glCopyTexSubImage2D", (void*)glCopyTexSubImage2D, 8, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
       glad_glCopyTexSubImage2D(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
      _post_call_callback_gl("glCopyTexSubImage2D", (void*)glCopyTexSubImage2D, 8, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
      
  }
  PFNGLCOPYTEXSUBIMAGE2DPROC glad_debug_glCopyTexSubImage2D = glad_debug_impl_glCopyTexSubImage2D;
  PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D;
  void APIENTRY glad_debug_impl_glCopyTexSubImage3D(GLenum arg0, GLint arg1, GLint arg2, GLint arg3, GLint arg4, GLint arg5, GLint arg6, GLsizei arg7, GLsizei arg8) {    
      _pre_call_callback_gl("glCopyTexSubImage3D", (void*)glCopyTexSubImage3D, 9, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
       glad_glCopyTexSubImage3D(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
      _post_call_callback_gl("glCopyTexSubImage3D", (void*)glCopyTexSubImage3D, 9, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
      
  }
  PFNGLCOPYTEXSUBIMAGE3DPROC glad_debug_glCopyTexSubImage3D = glad_debug_impl_glCopyTexSubImage3D;
  PFNGLCREATEPROGRAMPROC glad_glCreateProgram;
  GLuint APIENTRY glad_debug_impl_glCreateProgram(void) {    
      GLuint ret;
      _pre_call_callback_gl("glCreateProgram", (void*)glCreateProgram, 0);
      ret =  glad_glCreateProgram();
      _post_call_callback_gl("glCreateProgram", (void*)glCreateProgram, 0);
      return ret;
  }
  PFNGLCREATEPROGRAMPROC glad_debug_glCreateProgram = glad_debug_impl_glCreateProgram;
  PFNGLCREATESHADERPROC glad_glCreateShader;
  GLuint APIENTRY glad_debug_impl_glCreateShader(GLenum arg0) {    
      GLuint ret;
      _pre_call_callback_gl("glCreateShader", (void*)glCreateShader, 1, arg0);
      ret =  glad_glCreateShader(arg0);
      _post_call_callback_gl("glCreateShader", (void*)glCreateShader, 1, arg0);
      return ret;
  }
  PFNGLCREATESHADERPROC glad_debug_glCreateShader = glad_debug_impl_glCreateShader;
  PFNGLCREATESHADERPROGRAMVPROC glad_glCreateShaderProgramv;
  GLuint APIENTRY glad_debug_impl_glCreateShaderProgramv(GLenum arg0, GLsizei arg1, const GLchar *const* arg2) {    
      GLuint ret;
      _pre_call_callback_gl("glCreateShaderProgramv", (void*)glCreateShaderProgramv, 3, arg0, arg1, arg2);
      ret =  glad_glCreateShaderProgramv(arg0, arg1, arg2);
      _post_call_callback_gl("glCreateShaderProgramv", (void*)glCreateShaderProgramv, 3, arg0, arg1, arg2);
      return ret;
  }
  PFNGLCREATESHADERPROGRAMVPROC glad_debug_glCreateShaderProgramv = glad_debug_impl_glCreateShaderProgramv;
  PFNGLCULLFACEPROC glad_glCullFace;
  void APIENTRY glad_debug_impl_glCullFace(GLenum arg0) {    
      _pre_call_callback_gl("glCullFace", (void*)glCullFace, 1, arg0);
       glad_glCullFace(arg0);
      _post_call_callback_gl("glCullFace", (void*)glCullFace, 1, arg0);
      
  }
  PFNGLCULLFACEPROC glad_debug_glCullFace = glad_debug_impl_glCullFace;
  PFNGLDEBUGMESSAGECALLBACKPROC glad_glDebugMessageCallback;
  void APIENTRY glad_debug_impl_glDebugMessageCallback(GLDEBUGPROC arg0, const void * arg1) {    
      _pre_call_callback_gl("glDebugMessageCallback", (void*)glDebugMessageCallback, 2, arg0, arg1);
       glad_glDebugMessageCallback(arg0, arg1);
      _post_call_callback_gl("glDebugMessageCallback", (void*)glDebugMessageCallback, 2, arg0, arg1);
      
  }
  PFNGLDEBUGMESSAGECALLBACKPROC glad_debug_glDebugMessageCallback = glad_debug_impl_glDebugMessageCallback;
  PFNGLDEBUGMESSAGECONTROLPROC glad_glDebugMessageControl;
  void APIENTRY glad_debug_impl_glDebugMessageControl(GLenum arg0, GLenum arg1, GLenum arg2, GLsizei arg3, const GLuint * arg4, GLboolean arg5) {    
      _pre_call_callback_gl("glDebugMessageControl", (void*)glDebugMessageControl, 6, arg0, arg1, arg2, arg3, arg4, arg5);
       glad_glDebugMessageControl(arg0, arg1, arg2, arg3, arg4, arg5);
      _post_call_callback_gl("glDebugMessageControl", (void*)glDebugMessageControl, 6, arg0, arg1, arg2, arg3, arg4, arg5);
      
  }
  PFNGLDEBUGMESSAGECONTROLPROC glad_debug_glDebugMessageControl = glad_debug_impl_glDebugMessageControl;
  PFNGLDEBUGMESSAGEINSERTPROC glad_glDebugMessageInsert;
  void APIENTRY glad_debug_impl_glDebugMessageInsert(GLenum arg0, GLenum arg1, GLuint arg2, GLenum arg3, GLsizei arg4, const GLchar * arg5) {    
      _pre_call_callback_gl("glDebugMessageInsert", (void*)glDebugMessageInsert, 6, arg0, arg1, arg2, arg3, arg4, arg5);
       glad_glDebugMessageInsert(arg0, arg1, arg2, arg3, arg4, arg5);
      _post_call_callback_gl("glDebugMessageInsert", (void*)glDebugMessageInsert, 6, arg0, arg1, arg2, arg3, arg4, arg5);
      
  }
  PFNGLDEBUGMESSAGEINSERTPROC glad_debug_glDebugMessageInsert = glad_debug_impl_glDebugMessageInsert;
  PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers;
  void APIENTRY glad_debug_impl_glDeleteBuffers(GLsizei arg0, const GLuint * arg1) {    
      _pre_call_callback_gl("glDeleteBuffers", (void*)glDeleteBuffers, 2, arg0, arg1);
       glad_glDeleteBuffers(arg0, arg1);
      _post_call_callback_gl("glDeleteBuffers", (void*)glDeleteBuffers, 2, arg0, arg1);
      
  }
  PFNGLDELETEBUFFERSPROC glad_debug_glDeleteBuffers = glad_debug_impl_glDeleteBuffers;
  PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers;
  void APIENTRY glad_debug_impl_glDeleteFramebuffers(GLsizei arg0, const GLuint * arg1) {    
      _pre_call_callback_gl("glDeleteFramebuffers", (void*)glDeleteFramebuffers, 2, arg0, arg1);
       glad_glDeleteFramebuffers(arg0, arg1);
      _post_call_callback_gl("glDeleteFramebuffers", (void*)glDeleteFramebuffers, 2, arg0, arg1);
      
  }
  PFNGLDELETEFRAMEBUFFERSPROC glad_debug_glDeleteFramebuffers = glad_debug_impl_glDeleteFramebuffers;
  PFNGLDELETELISTSPROC glad_glDeleteLists;
  void APIENTRY glad_debug_impl_glDeleteLists(GLuint arg0, GLsizei arg1) {    
      _pre_call_callback_gl("glDeleteLists", (void*)glDeleteLists, 2, arg0, arg1);
       glad_glDeleteLists(arg0, arg1);
      _post_call_callback_gl("glDeleteLists", (void*)glDeleteLists, 2, arg0, arg1);
      
  }
  PFNGLDELETELISTSPROC glad_debug_glDeleteLists = glad_debug_impl_glDeleteLists;
  PFNGLDELETEPROGRAMPROC glad_glDeleteProgram;
  void APIENTRY glad_debug_impl_glDeleteProgram(GLuint arg0) {    
      _pre_call_callback_gl("glDeleteProgram", (void*)glDeleteProgram, 1, arg0);
       glad_glDeleteProgram(arg0);
      _post_call_callback_gl("glDeleteProgram", (void*)glDeleteProgram, 1, arg0);
      
  }
  PFNGLDELETEPROGRAMPROC glad_debug_glDeleteProgram = glad_debug_impl_glDeleteProgram;
  PFNGLDELETEPROGRAMPIPELINESPROC glad_glDeleteProgramPipelines;
  void APIENTRY glad_debug_impl_glDeleteProgramPipelines(GLsizei arg0, const GLuint * arg1) {    
      _pre_call_callback_gl("glDeleteProgramPipelines", (void*)glDeleteProgramPipelines, 2, arg0, arg1);
       glad_glDeleteProgramPipelines(arg0, arg1);
      _post_call_callback_gl("glDeleteProgramPipelines", (void*)glDeleteProgramPipelines, 2, arg0, arg1);
      
  }
  PFNGLDELETEPROGRAMPIPELINESPROC glad_debug_glDeleteProgramPipelines = glad_debug_impl_glDeleteProgramPipelines;
  PFNGLDELETEQUERIESPROC glad_glDeleteQueries;
  void APIENTRY glad_debug_impl_glDeleteQueries(GLsizei arg0, const GLuint * arg1) {    
      _pre_call_callback_gl("glDeleteQueries", (void*)glDeleteQueries, 2, arg0, arg1);
       glad_glDeleteQueries(arg0, arg1);
      _post_call_callback_gl("glDeleteQueries", (void*)glDeleteQueries, 2, arg0, arg1);
      
  }
  PFNGLDELETEQUERIESPROC glad_debug_glDeleteQueries = glad_debug_impl_glDeleteQueries;
  PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers;
  void APIENTRY glad_debug_impl_glDeleteRenderbuffers(GLsizei arg0, const GLuint * arg1) {    
      _pre_call_callback_gl("glDeleteRenderbuffers", (void*)glDeleteRenderbuffers, 2, arg0, arg1);
       glad_glDeleteRenderbuffers(arg0, arg1);
      _post_call_callback_gl("glDeleteRenderbuffers", (void*)glDeleteRenderbuffers, 2, arg0, arg1);
      
  }
  PFNGLDELETERENDERBUFFERSPROC glad_debug_glDeleteRenderbuffers = glad_debug_impl_glDeleteRenderbuffers;
  PFNGLDELETESAMPLERSPROC glad_glDeleteSamplers;
  void APIENTRY glad_debug_impl_glDeleteSamplers(GLsizei arg0, const GLuint * arg1) {    
      _pre_call_callback_gl("glDeleteSamplers", (void*)glDeleteSamplers, 2, arg0, arg1);
       glad_glDeleteSamplers(arg0, arg1);
      _post_call_callback_gl("glDeleteSamplers", (void*)glDeleteSamplers, 2, arg0, arg1);
      
  }
  PFNGLDELETESAMPLERSPROC glad_debug_glDeleteSamplers = glad_debug_impl_glDeleteSamplers;
  PFNGLDELETESHADERPROC glad_glDeleteShader;
  void APIENTRY glad_debug_impl_glDeleteShader(GLuint arg0) {    
      _pre_call_callback_gl("glDeleteShader", (void*)glDeleteShader, 1, arg0);
       glad_glDeleteShader(arg0);
      _post_call_callback_gl("glDeleteShader", (void*)glDeleteShader, 1, arg0);
      
  }
  PFNGLDELETESHADERPROC glad_debug_glDeleteShader = glad_debug_impl_glDeleteShader;
  PFNGLDELETESYNCPROC glad_glDeleteSync;
  void APIENTRY glad_debug_impl_glDeleteSync(GLsync arg0) {    
      _pre_call_callback_gl("glDeleteSync", (void*)glDeleteSync, 1, arg0);
       glad_glDeleteSync(arg0);
      _post_call_callback_gl("glDeleteSync", (void*)glDeleteSync, 1, arg0);
      
  }
  PFNGLDELETESYNCPROC glad_debug_glDeleteSync = glad_debug_impl_glDeleteSync;
  PFNGLDELETETEXTURESPROC glad_glDeleteTextures;
  void APIENTRY glad_debug_impl_glDeleteTextures(GLsizei arg0, const GLuint * arg1) {    
      _pre_call_callback_gl("glDeleteTextures", (void*)glDeleteTextures, 2, arg0, arg1);
       glad_glDeleteTextures(arg0, arg1);
      _post_call_callback_gl("glDeleteTextures", (void*)glDeleteTextures, 2, arg0, arg1);
      
  }
  PFNGLDELETETEXTURESPROC glad_debug_glDeleteTextures = glad_debug_impl_glDeleteTextures;
  PFNGLDELETETRANSFORMFEEDBACKSPROC glad_glDeleteTransformFeedbacks;
  void APIENTRY glad_debug_impl_glDeleteTransformFeedbacks(GLsizei arg0, const GLuint * arg1) {    
      _pre_call_callback_gl("glDeleteTransformFeedbacks", (void*)glDeleteTransformFeedbacks, 2, arg0, arg1);
       glad_glDeleteTransformFeedbacks(arg0, arg1);
      _post_call_callback_gl("glDeleteTransformFeedbacks", (void*)glDeleteTransformFeedbacks, 2, arg0, arg1);
      
  }
  PFNGLDELETETRANSFORMFEEDBACKSPROC glad_debug_glDeleteTransformFeedbacks = glad_debug_impl_glDeleteTransformFeedbacks;
  PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays;
  void APIENTRY glad_debug_impl_glDeleteVertexArrays(GLsizei arg0, const GLuint * arg1) {    
      _pre_call_callback_gl("glDeleteVertexArrays", (void*)glDeleteVertexArrays, 2, arg0, arg1);
       glad_glDeleteVertexArrays(arg0, arg1);
      _post_call_callback_gl("glDeleteVertexArrays", (void*)glDeleteVertexArrays, 2, arg0, arg1);
      
  }
  PFNGLDELETEVERTEXARRAYSPROC glad_debug_glDeleteVertexArrays = glad_debug_impl_glDeleteVertexArrays;
  PFNGLDEPTHFUNCPROC glad_glDepthFunc;
  void APIENTRY glad_debug_impl_glDepthFunc(GLenum arg0) {    
      _pre_call_callback_gl("glDepthFunc", (void*)glDepthFunc, 1, arg0);
       glad_glDepthFunc(arg0);
      _post_call_callback_gl("glDepthFunc", (void*)glDepthFunc, 1, arg0);
      
  }
  PFNGLDEPTHFUNCPROC glad_debug_glDepthFunc = glad_debug_impl_glDepthFunc;
  PFNGLDEPTHMASKPROC glad_glDepthMask;
  void APIENTRY glad_debug_impl_glDepthMask(GLboolean arg0) {    
      _pre_call_callback_gl("glDepthMask", (void*)glDepthMask, 1, arg0);
       glad_glDepthMask(arg0);
      _post_call_callback_gl("glDepthMask", (void*)glDepthMask, 1, arg0);
      
  }
  PFNGLDEPTHMASKPROC glad_debug_glDepthMask = glad_debug_impl_glDepthMask;
  PFNGLDEPTHRANGEPROC glad_glDepthRange;
  void APIENTRY glad_debug_impl_glDepthRange(GLdouble arg0, GLdouble arg1) {    
      _pre_call_callback_gl("glDepthRange", (void*)glDepthRange, 2, arg0, arg1);
       glad_glDepthRange(arg0, arg1);
      _post_call_callback_gl("glDepthRange", (void*)glDepthRange, 2, arg0, arg1);
      
  }
  PFNGLDEPTHRANGEPROC glad_debug_glDepthRange = glad_debug_impl_glDepthRange;
  PFNGLDEPTHRANGEARRAYVPROC glad_glDepthRangeArrayv;
  void APIENTRY glad_debug_impl_glDepthRangeArrayv(GLuint arg0, GLsizei arg1, const GLdouble * arg2) {    
      _pre_call_callback_gl("glDepthRangeArrayv", (void*)glDepthRangeArrayv, 3, arg0, arg1, arg2);
       glad_glDepthRangeArrayv(arg0, arg1, arg2);
      _post_call_callback_gl("glDepthRangeArrayv", (void*)glDepthRangeArrayv, 3, arg0, arg1, arg2);
      
  }
  PFNGLDEPTHRANGEARRAYVPROC glad_debug_glDepthRangeArrayv = glad_debug_impl_glDepthRangeArrayv;
  PFNGLDEPTHRANGEINDEXEDPROC glad_glDepthRangeIndexed;
  void APIENTRY glad_debug_impl_glDepthRangeIndexed(GLuint arg0, GLdouble arg1, GLdouble arg2) {    
      _pre_call_callback_gl("glDepthRangeIndexed", (void*)glDepthRangeIndexed, 3, arg0, arg1, arg2);
       glad_glDepthRangeIndexed(arg0, arg1, arg2);
      _post_call_callback_gl("glDepthRangeIndexed", (void*)glDepthRangeIndexed, 3, arg0, arg1, arg2);
      
  }
  PFNGLDEPTHRANGEINDEXEDPROC glad_debug_glDepthRangeIndexed = glad_debug_impl_glDepthRangeIndexed;
  PFNGLDEPTHRANGEFPROC glad_glDepthRangef;
  void APIENTRY glad_debug_impl_glDepthRangef(GLfloat arg0, GLfloat arg1) {    
      _pre_call_callback_gl("glDepthRangef", (void*)glDepthRangef, 2, arg0, arg1);
       glad_glDepthRangef(arg0, arg1);
      _post_call_callback_gl("glDepthRangef", (void*)glDepthRangef, 2, arg0, arg1);
      
  }
  PFNGLDEPTHRANGEFPROC glad_debug_glDepthRangef = glad_debug_impl_glDepthRangef;
  PFNGLDETACHSHADERPROC glad_glDetachShader;
  void APIENTRY glad_debug_impl_glDetachShader(GLuint arg0, GLuint arg1) {    
      _pre_call_callback_gl("glDetachShader", (void*)glDetachShader, 2, arg0, arg1);
       glad_glDetachShader(arg0, arg1);
      _post_call_callback_gl("glDetachShader", (void*)glDetachShader, 2, arg0, arg1);
      
  }
  PFNGLDETACHSHADERPROC glad_debug_glDetachShader = glad_debug_impl_glDetachShader;
  PFNGLDISABLEPROC glad_glDisable;
  void APIENTRY glad_debug_impl_glDisable(GLenum arg0) {    
      _pre_call_callback_gl("glDisable", (void*)glDisable, 1, arg0);
       glad_glDisable(arg0);
      _post_call_callback_gl("glDisable", (void*)glDisable, 1, arg0);
      
  }
  PFNGLDISABLEPROC glad_debug_glDisable = glad_debug_impl_glDisable;
  PFNGLDISABLECLIENTSTATEPROC glad_glDisableClientState;
  void APIENTRY glad_debug_impl_glDisableClientState(GLenum arg0) {    
      _pre_call_callback_gl("glDisableClientState", (void*)glDisableClientState, 1, arg0);
       glad_glDisableClientState(arg0);
      _post_call_callback_gl("glDisableClientState", (void*)glDisableClientState, 1, arg0);
      
  }
  PFNGLDISABLECLIENTSTATEPROC glad_debug_glDisableClientState = glad_debug_impl_glDisableClientState;
  PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray;
  void APIENTRY glad_debug_impl_glDisableVertexAttribArray(GLuint arg0) {    
      _pre_call_callback_gl("glDisableVertexAttribArray", (void*)glDisableVertexAttribArray, 1, arg0);
       glad_glDisableVertexAttribArray(arg0);
      _post_call_callback_gl("glDisableVertexAttribArray", (void*)glDisableVertexAttribArray, 1, arg0);
      
  }
  PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_debug_glDisableVertexAttribArray = glad_debug_impl_glDisableVertexAttribArray;
  PFNGLDISABLEIPROC glad_glDisablei;
  void APIENTRY glad_debug_impl_glDisablei(GLenum arg0, GLuint arg1) {    
      _pre_call_callback_gl("glDisablei", (void*)glDisablei, 2, arg0, arg1);
       glad_glDisablei(arg0, arg1);
      _post_call_callback_gl("glDisablei", (void*)glDisablei, 2, arg0, arg1);
      
  }
  PFNGLDISABLEIPROC glad_debug_glDisablei = glad_debug_impl_glDisablei;
  PFNGLDISPATCHCOMPUTEPROC glad_glDispatchCompute;
  void APIENTRY glad_debug_impl_glDispatchCompute(GLuint arg0, GLuint arg1, GLuint arg2) {    
      _pre_call_callback_gl("glDispatchCompute", (void*)glDispatchCompute, 3, arg0, arg1, arg2);
       glad_glDispatchCompute(arg0, arg1, arg2);
      _post_call_callback_gl("glDispatchCompute", (void*)glDispatchCompute, 3, arg0, arg1, arg2);
      
  }
  PFNGLDISPATCHCOMPUTEPROC glad_debug_glDispatchCompute = glad_debug_impl_glDispatchCompute;
  PFNGLDISPATCHCOMPUTEINDIRECTPROC glad_glDispatchComputeIndirect;
  void APIENTRY glad_debug_impl_glDispatchComputeIndirect(GLintptr arg0) {    
      _pre_call_callback_gl("glDispatchComputeIndirect", (void*)glDispatchComputeIndirect, 1, arg0);
       glad_glDispatchComputeIndirect(arg0);
      _post_call_callback_gl("glDispatchComputeIndirect", (void*)glDispatchComputeIndirect, 1, arg0);
      
  }
  PFNGLDISPATCHCOMPUTEINDIRECTPROC glad_debug_glDispatchComputeIndirect = glad_debug_impl_glDispatchComputeIndirect;
  PFNGLDRAWARRAYSPROC glad_glDrawArrays;
  void APIENTRY glad_debug_impl_glDrawArrays(GLenum arg0, GLint arg1, GLsizei arg2) {    
      _pre_call_callback_gl("glDrawArrays", (void*)glDrawArrays, 3, arg0, arg1, arg2);
       glad_glDrawArrays(arg0, arg1, arg2);
      _post_call_callback_gl("glDrawArrays", (void*)glDrawArrays, 3, arg0, arg1, arg2);
      
  }
  PFNGLDRAWARRAYSPROC glad_debug_glDrawArrays = glad_debug_impl_glDrawArrays;
  PFNGLDRAWARRAYSINDIRECTPROC glad_glDrawArraysIndirect;
  void APIENTRY glad_debug_impl_glDrawArraysIndirect(GLenum arg0, const void * arg1) {    
      _pre_call_callback_gl("glDrawArraysIndirect", (void*)glDrawArraysIndirect, 2, arg0, arg1);
       glad_glDrawArraysIndirect(arg0, arg1);
      _post_call_callback_gl("glDrawArraysIndirect", (void*)glDrawArraysIndirect, 2, arg0, arg1);
      
  }
  PFNGLDRAWARRAYSINDIRECTPROC glad_debug_glDrawArraysIndirect = glad_debug_impl_glDrawArraysIndirect;
  PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced;
  void APIENTRY glad_debug_impl_glDrawArraysInstanced(GLenum arg0, GLint arg1, GLsizei arg2, GLsizei arg3) {    
      _pre_call_callback_gl("glDrawArraysInstanced", (void*)glDrawArraysInstanced, 4, arg0, arg1, arg2, arg3);
       glad_glDrawArraysInstanced(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glDrawArraysInstanced", (void*)glDrawArraysInstanced, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLDRAWARRAYSINSTANCEDPROC glad_debug_glDrawArraysInstanced = glad_debug_impl_glDrawArraysInstanced;
  PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC glad_glDrawArraysInstancedBaseInstance;
  void APIENTRY glad_debug_impl_glDrawArraysInstancedBaseInstance(GLenum arg0, GLint arg1, GLsizei arg2, GLsizei arg3, GLuint arg4) {    
      _pre_call_callback_gl("glDrawArraysInstancedBaseInstance", (void*)glDrawArraysInstancedBaseInstance, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glDrawArraysInstancedBaseInstance(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glDrawArraysInstancedBaseInstance", (void*)glDrawArraysInstancedBaseInstance, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC glad_debug_glDrawArraysInstancedBaseInstance = glad_debug_impl_glDrawArraysInstancedBaseInstance;
  PFNGLDRAWBUFFERPROC glad_glDrawBuffer;
  void APIENTRY glad_debug_impl_glDrawBuffer(GLenum arg0) {    
      _pre_call_callback_gl("glDrawBuffer", (void*)glDrawBuffer, 1, arg0);
       glad_glDrawBuffer(arg0);
      _post_call_callback_gl("glDrawBuffer", (void*)glDrawBuffer, 1, arg0);
      
  }
  PFNGLDRAWBUFFERPROC glad_debug_glDrawBuffer = glad_debug_impl_glDrawBuffer;
  PFNGLDRAWBUFFERSPROC glad_glDrawBuffers;
  void APIENTRY glad_debug_impl_glDrawBuffers(GLsizei arg0, const GLenum * arg1) {    
      _pre_call_callback_gl("glDrawBuffers", (void*)glDrawBuffers, 2, arg0, arg1);
       glad_glDrawBuffers(arg0, arg1);
      _post_call_callback_gl("glDrawBuffers", (void*)glDrawBuffers, 2, arg0, arg1);
      
  }
  PFNGLDRAWBUFFERSPROC glad_debug_glDrawBuffers = glad_debug_impl_glDrawBuffers;
  PFNGLDRAWELEMENTSPROC glad_glDrawElements;
  void APIENTRY glad_debug_impl_glDrawElements(GLenum arg0, GLsizei arg1, GLenum arg2, const void * arg3) {    
      _pre_call_callback_gl("glDrawElements", (void*)glDrawElements, 4, arg0, arg1, arg2, arg3);
       glad_glDrawElements(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glDrawElements", (void*)glDrawElements, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLDRAWELEMENTSPROC glad_debug_glDrawElements = glad_debug_impl_glDrawElements;
  PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex;
  void APIENTRY glad_debug_impl_glDrawElementsBaseVertex(GLenum arg0, GLsizei arg1, GLenum arg2, const void * arg3, GLint arg4) {    
      _pre_call_callback_gl("glDrawElementsBaseVertex", (void*)glDrawElementsBaseVertex, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glDrawElementsBaseVertex(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glDrawElementsBaseVertex", (void*)glDrawElementsBaseVertex, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLDRAWELEMENTSBASEVERTEXPROC glad_debug_glDrawElementsBaseVertex = glad_debug_impl_glDrawElementsBaseVertex;
  PFNGLDRAWELEMENTSINDIRECTPROC glad_glDrawElementsIndirect;
  void APIENTRY glad_debug_impl_glDrawElementsIndirect(GLenum arg0, GLenum arg1, const void * arg2) {    
      _pre_call_callback_gl("glDrawElementsIndirect", (void*)glDrawElementsIndirect, 3, arg0, arg1, arg2);
       glad_glDrawElementsIndirect(arg0, arg1, arg2);
      _post_call_callback_gl("glDrawElementsIndirect", (void*)glDrawElementsIndirect, 3, arg0, arg1, arg2);
      
  }
  PFNGLDRAWELEMENTSINDIRECTPROC glad_debug_glDrawElementsIndirect = glad_debug_impl_glDrawElementsIndirect;
  PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced;
  void APIENTRY glad_debug_impl_glDrawElementsInstanced(GLenum arg0, GLsizei arg1, GLenum arg2, const void * arg3, GLsizei arg4) {    
      _pre_call_callback_gl("glDrawElementsInstanced", (void*)glDrawElementsInstanced, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glDrawElementsInstanced(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glDrawElementsInstanced", (void*)glDrawElementsInstanced, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLDRAWELEMENTSINSTANCEDPROC glad_debug_glDrawElementsInstanced = glad_debug_impl_glDrawElementsInstanced;
  PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC glad_glDrawElementsInstancedBaseInstance;
  void APIENTRY glad_debug_impl_glDrawElementsInstancedBaseInstance(GLenum arg0, GLsizei arg1, GLenum arg2, const void * arg3, GLsizei arg4, GLuint arg5) {    
      _pre_call_callback_gl("glDrawElementsInstancedBaseInstance", (void*)glDrawElementsInstancedBaseInstance, 6, arg0, arg1, arg2, arg3, arg4, arg5);
       glad_glDrawElementsInstancedBaseInstance(arg0, arg1, arg2, arg3, arg4, arg5);
      _post_call_callback_gl("glDrawElementsInstancedBaseInstance", (void*)glDrawElementsInstancedBaseInstance, 6, arg0, arg1, arg2, arg3, arg4, arg5);
      
  }
  PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC glad_debug_glDrawElementsInstancedBaseInstance = glad_debug_impl_glDrawElementsInstancedBaseInstance;
  PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex;
  void APIENTRY glad_debug_impl_glDrawElementsInstancedBaseVertex(GLenum arg0, GLsizei arg1, GLenum arg2, const void * arg3, GLsizei arg4, GLint arg5) {    
      _pre_call_callback_gl("glDrawElementsInstancedBaseVertex", (void*)glDrawElementsInstancedBaseVertex, 6, arg0, arg1, arg2, arg3, arg4, arg5);
       glad_glDrawElementsInstancedBaseVertex(arg0, arg1, arg2, arg3, arg4, arg5);
      _post_call_callback_gl("glDrawElementsInstancedBaseVertex", (void*)glDrawElementsInstancedBaseVertex, 6, arg0, arg1, arg2, arg3, arg4, arg5);
      
  }
  PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_debug_glDrawElementsInstancedBaseVertex = glad_debug_impl_glDrawElementsInstancedBaseVertex;
  PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC glad_glDrawElementsInstancedBaseVertexBaseInstance;
  void APIENTRY glad_debug_impl_glDrawElementsInstancedBaseVertexBaseInstance(GLenum arg0, GLsizei arg1, GLenum arg2, const void * arg3, GLsizei arg4, GLint arg5, GLuint arg6) {    
      _pre_call_callback_gl("glDrawElementsInstancedBaseVertexBaseInstance", (void*)glDrawElementsInstancedBaseVertexBaseInstance, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
       glad_glDrawElementsInstancedBaseVertexBaseInstance(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      _post_call_callback_gl("glDrawElementsInstancedBaseVertexBaseInstance", (void*)glDrawElementsInstancedBaseVertexBaseInstance, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      
  }
  PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC glad_debug_glDrawElementsInstancedBaseVertexBaseInstance = glad_debug_impl_glDrawElementsInstancedBaseVertexBaseInstance;
  PFNGLDRAWPIXELSPROC glad_glDrawPixels;
  void APIENTRY glad_debug_impl_glDrawPixels(GLsizei arg0, GLsizei arg1, GLenum arg2, GLenum arg3, const void * arg4) {    
      _pre_call_callback_gl("glDrawPixels", (void*)glDrawPixels, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glDrawPixels(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glDrawPixels", (void*)glDrawPixels, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLDRAWPIXELSPROC glad_debug_glDrawPixels = glad_debug_impl_glDrawPixels;
  PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements;
  void APIENTRY glad_debug_impl_glDrawRangeElements(GLenum arg0, GLuint arg1, GLuint arg2, GLsizei arg3, GLenum arg4, const void * arg5) {    
      _pre_call_callback_gl("glDrawRangeElements", (void*)glDrawRangeElements, 6, arg0, arg1, arg2, arg3, arg4, arg5);
       glad_glDrawRangeElements(arg0, arg1, arg2, arg3, arg4, arg5);
      _post_call_callback_gl("glDrawRangeElements", (void*)glDrawRangeElements, 6, arg0, arg1, arg2, arg3, arg4, arg5);
      
  }
  PFNGLDRAWRANGEELEMENTSPROC glad_debug_glDrawRangeElements = glad_debug_impl_glDrawRangeElements;
  PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex;
  void APIENTRY glad_debug_impl_glDrawRangeElementsBaseVertex(GLenum arg0, GLuint arg1, GLuint arg2, GLsizei arg3, GLenum arg4, const void * arg5, GLint arg6) {    
      _pre_call_callback_gl("glDrawRangeElementsBaseVertex", (void*)glDrawRangeElementsBaseVertex, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
       glad_glDrawRangeElementsBaseVertex(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      _post_call_callback_gl("glDrawRangeElementsBaseVertex", (void*)glDrawRangeElementsBaseVertex, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      
  }
  PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_debug_glDrawRangeElementsBaseVertex = glad_debug_impl_glDrawRangeElementsBaseVertex;
  PFNGLDRAWTRANSFORMFEEDBACKPROC glad_glDrawTransformFeedback;
  void APIENTRY glad_debug_impl_glDrawTransformFeedback(GLenum arg0, GLuint arg1) {    
      _pre_call_callback_gl("glDrawTransformFeedback", (void*)glDrawTransformFeedback, 2, arg0, arg1);
       glad_glDrawTransformFeedback(arg0, arg1);
      _post_call_callback_gl("glDrawTransformFeedback", (void*)glDrawTransformFeedback, 2, arg0, arg1);
      
  }
  PFNGLDRAWTRANSFORMFEEDBACKPROC glad_debug_glDrawTransformFeedback = glad_debug_impl_glDrawTransformFeedback;
  PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC glad_glDrawTransformFeedbackInstanced;
  void APIENTRY glad_debug_impl_glDrawTransformFeedbackInstanced(GLenum arg0, GLuint arg1, GLsizei arg2) {    
      _pre_call_callback_gl("glDrawTransformFeedbackInstanced", (void*)glDrawTransformFeedbackInstanced, 3, arg0, arg1, arg2);
       glad_glDrawTransformFeedbackInstanced(arg0, arg1, arg2);
      _post_call_callback_gl("glDrawTransformFeedbackInstanced", (void*)glDrawTransformFeedbackInstanced, 3, arg0, arg1, arg2);
      
  }
  PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC glad_debug_glDrawTransformFeedbackInstanced = glad_debug_impl_glDrawTransformFeedbackInstanced;
  PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC glad_glDrawTransformFeedbackStream;
  void APIENTRY glad_debug_impl_glDrawTransformFeedbackStream(GLenum arg0, GLuint arg1, GLuint arg2) {    
      _pre_call_callback_gl("glDrawTransformFeedbackStream", (void*)glDrawTransformFeedbackStream, 3, arg0, arg1, arg2);
       glad_glDrawTransformFeedbackStream(arg0, arg1, arg2);
      _post_call_callback_gl("glDrawTransformFeedbackStream", (void*)glDrawTransformFeedbackStream, 3, arg0, arg1, arg2);
      
  }
  PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC glad_debug_glDrawTransformFeedbackStream = glad_debug_impl_glDrawTransformFeedbackStream;
  PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC glad_glDrawTransformFeedbackStreamInstanced;
  void APIENTRY glad_debug_impl_glDrawTransformFeedbackStreamInstanced(GLenum arg0, GLuint arg1, GLuint arg2, GLsizei arg3) {    
      _pre_call_callback_gl("glDrawTransformFeedbackStreamInstanced", (void*)glDrawTransformFeedbackStreamInstanced, 4, arg0, arg1, arg2, arg3);
       glad_glDrawTransformFeedbackStreamInstanced(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glDrawTransformFeedbackStreamInstanced", (void*)glDrawTransformFeedbackStreamInstanced, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC glad_debug_glDrawTransformFeedbackStreamInstanced = glad_debug_impl_glDrawTransformFeedbackStreamInstanced;
  PFNGLEDGEFLAGPROC glad_glEdgeFlag;
  void APIENTRY glad_debug_impl_glEdgeFlag(GLboolean arg0) {    
      _pre_call_callback_gl("glEdgeFlag", (void*)glEdgeFlag, 1, arg0);
       glad_glEdgeFlag(arg0);
      _post_call_callback_gl("glEdgeFlag", (void*)glEdgeFlag, 1, arg0);
      
  }
  PFNGLEDGEFLAGPROC glad_debug_glEdgeFlag = glad_debug_impl_glEdgeFlag;
  PFNGLEDGEFLAGPOINTERPROC glad_glEdgeFlagPointer;
  void APIENTRY glad_debug_impl_glEdgeFlagPointer(GLsizei arg0, const void * arg1) {    
      _pre_call_callback_gl("glEdgeFlagPointer", (void*)glEdgeFlagPointer, 2, arg0, arg1);
       glad_glEdgeFlagPointer(arg0, arg1);
      _post_call_callback_gl("glEdgeFlagPointer", (void*)glEdgeFlagPointer, 2, arg0, arg1);
      
  }
  PFNGLEDGEFLAGPOINTERPROC glad_debug_glEdgeFlagPointer = glad_debug_impl_glEdgeFlagPointer;
  PFNGLEDGEFLAGVPROC glad_glEdgeFlagv;
  void APIENTRY glad_debug_impl_glEdgeFlagv(const GLboolean * arg0) {    
      _pre_call_callback_gl("glEdgeFlagv", (void*)glEdgeFlagv, 1, arg0);
       glad_glEdgeFlagv(arg0);
      _post_call_callback_gl("glEdgeFlagv", (void*)glEdgeFlagv, 1, arg0);
      
  }
  PFNGLEDGEFLAGVPROC glad_debug_glEdgeFlagv = glad_debug_impl_glEdgeFlagv;
  PFNGLENABLEPROC glad_glEnable;
  void APIENTRY glad_debug_impl_glEnable(GLenum arg0) {    
      _pre_call_callback_gl("glEnable", (void*)glEnable, 1, arg0);
       glad_glEnable(arg0);
      _post_call_callback_gl("glEnable", (void*)glEnable, 1, arg0);
      
  }
  PFNGLENABLEPROC glad_debug_glEnable = glad_debug_impl_glEnable;
  PFNGLENABLECLIENTSTATEPROC glad_glEnableClientState;
  void APIENTRY glad_debug_impl_glEnableClientState(GLenum arg0) {    
      _pre_call_callback_gl("glEnableClientState", (void*)glEnableClientState, 1, arg0);
       glad_glEnableClientState(arg0);
      _post_call_callback_gl("glEnableClientState", (void*)glEnableClientState, 1, arg0);
      
  }
  PFNGLENABLECLIENTSTATEPROC glad_debug_glEnableClientState = glad_debug_impl_glEnableClientState;
  PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray;
  void APIENTRY glad_debug_impl_glEnableVertexAttribArray(GLuint arg0) {    
      _pre_call_callback_gl("glEnableVertexAttribArray", (void*)glEnableVertexAttribArray, 1, arg0);
       glad_glEnableVertexAttribArray(arg0);
      _post_call_callback_gl("glEnableVertexAttribArray", (void*)glEnableVertexAttribArray, 1, arg0);
      
  }
  PFNGLENABLEVERTEXATTRIBARRAYPROC glad_debug_glEnableVertexAttribArray = glad_debug_impl_glEnableVertexAttribArray;
  PFNGLENABLEIPROC glad_glEnablei;
  void APIENTRY glad_debug_impl_glEnablei(GLenum arg0, GLuint arg1) {    
      _pre_call_callback_gl("glEnablei", (void*)glEnablei, 2, arg0, arg1);
       glad_glEnablei(arg0, arg1);
      _post_call_callback_gl("glEnablei", (void*)glEnablei, 2, arg0, arg1);
      
  }
  PFNGLENABLEIPROC glad_debug_glEnablei = glad_debug_impl_glEnablei;
  PFNGLENDPROC glad_glEnd;
  void APIENTRY glad_debug_impl_glEnd(void) {    
      _pre_call_callback_gl("glEnd", (void*)glEnd, 0);
       glad_glEnd();
      _post_call_callback_gl("glEnd", (void*)glEnd, 0);
      
  }
  PFNGLENDPROC glad_debug_glEnd = glad_debug_impl_glEnd;
  PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender;
  void APIENTRY glad_debug_impl_glEndConditionalRender(void) {    
      _pre_call_callback_gl("glEndConditionalRender", (void*)glEndConditionalRender, 0);
       glad_glEndConditionalRender();
      _post_call_callback_gl("glEndConditionalRender", (void*)glEndConditionalRender, 0);
      
  }
  PFNGLENDCONDITIONALRENDERPROC glad_debug_glEndConditionalRender = glad_debug_impl_glEndConditionalRender;
  PFNGLENDLISTPROC glad_glEndList;
  void APIENTRY glad_debug_impl_glEndList(void) {    
      _pre_call_callback_gl("glEndList", (void*)glEndList, 0);
       glad_glEndList();
      _post_call_callback_gl("glEndList", (void*)glEndList, 0);
      
  }
  PFNGLENDLISTPROC glad_debug_glEndList = glad_debug_impl_glEndList;
  PFNGLENDQUERYPROC glad_glEndQuery;
  void APIENTRY glad_debug_impl_glEndQuery(GLenum arg0) {    
      _pre_call_callback_gl("glEndQuery", (void*)glEndQuery, 1, arg0);
       glad_glEndQuery(arg0);
      _post_call_callback_gl("glEndQuery", (void*)glEndQuery, 1, arg0);
      
  }
  PFNGLENDQUERYPROC glad_debug_glEndQuery = glad_debug_impl_glEndQuery;
  PFNGLENDQUERYINDEXEDPROC glad_glEndQueryIndexed;
  void APIENTRY glad_debug_impl_glEndQueryIndexed(GLenum arg0, GLuint arg1) {    
      _pre_call_callback_gl("glEndQueryIndexed", (void*)glEndQueryIndexed, 2, arg0, arg1);
       glad_glEndQueryIndexed(arg0, arg1);
      _post_call_callback_gl("glEndQueryIndexed", (void*)glEndQueryIndexed, 2, arg0, arg1);
      
  }
  PFNGLENDQUERYINDEXEDPROC glad_debug_glEndQueryIndexed = glad_debug_impl_glEndQueryIndexed;
  PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback;
  void APIENTRY glad_debug_impl_glEndTransformFeedback(void) {    
      _pre_call_callback_gl("glEndTransformFeedback", (void*)glEndTransformFeedback, 0);
       glad_glEndTransformFeedback();
      _post_call_callback_gl("glEndTransformFeedback", (void*)glEndTransformFeedback, 0);
      
  }
  PFNGLENDTRANSFORMFEEDBACKPROC glad_debug_glEndTransformFeedback = glad_debug_impl_glEndTransformFeedback;
  PFNGLEVALCOORD1DPROC glad_glEvalCoord1d;
  void APIENTRY glad_debug_impl_glEvalCoord1d(GLdouble arg0) {    
      _pre_call_callback_gl("glEvalCoord1d", (void*)glEvalCoord1d, 1, arg0);
       glad_glEvalCoord1d(arg0);
      _post_call_callback_gl("glEvalCoord1d", (void*)glEvalCoord1d, 1, arg0);
      
  }
  PFNGLEVALCOORD1DPROC glad_debug_glEvalCoord1d = glad_debug_impl_glEvalCoord1d;
  PFNGLEVALCOORD1DVPROC glad_glEvalCoord1dv;
  void APIENTRY glad_debug_impl_glEvalCoord1dv(const GLdouble * arg0) {    
      _pre_call_callback_gl("glEvalCoord1dv", (void*)glEvalCoord1dv, 1, arg0);
       glad_glEvalCoord1dv(arg0);
      _post_call_callback_gl("glEvalCoord1dv", (void*)glEvalCoord1dv, 1, arg0);
      
  }
  PFNGLEVALCOORD1DVPROC glad_debug_glEvalCoord1dv = glad_debug_impl_glEvalCoord1dv;
  PFNGLEVALCOORD1FPROC glad_glEvalCoord1f;
  void APIENTRY glad_debug_impl_glEvalCoord1f(GLfloat arg0) {    
      _pre_call_callback_gl("glEvalCoord1f", (void*)glEvalCoord1f, 1, arg0);
       glad_glEvalCoord1f(arg0);
      _post_call_callback_gl("glEvalCoord1f", (void*)glEvalCoord1f, 1, arg0);
      
  }
  PFNGLEVALCOORD1FPROC glad_debug_glEvalCoord1f = glad_debug_impl_glEvalCoord1f;
  PFNGLEVALCOORD1FVPROC glad_glEvalCoord1fv;
  void APIENTRY glad_debug_impl_glEvalCoord1fv(const GLfloat * arg0) {    
      _pre_call_callback_gl("glEvalCoord1fv", (void*)glEvalCoord1fv, 1, arg0);
       glad_glEvalCoord1fv(arg0);
      _post_call_callback_gl("glEvalCoord1fv", (void*)glEvalCoord1fv, 1, arg0);
      
  }
  PFNGLEVALCOORD1FVPROC glad_debug_glEvalCoord1fv = glad_debug_impl_glEvalCoord1fv;
  PFNGLEVALCOORD2DPROC glad_glEvalCoord2d;
  void APIENTRY glad_debug_impl_glEvalCoord2d(GLdouble arg0, GLdouble arg1) {    
      _pre_call_callback_gl("glEvalCoord2d", (void*)glEvalCoord2d, 2, arg0, arg1);
       glad_glEvalCoord2d(arg0, arg1);
      _post_call_callback_gl("glEvalCoord2d", (void*)glEvalCoord2d, 2, arg0, arg1);
      
  }
  PFNGLEVALCOORD2DPROC glad_debug_glEvalCoord2d = glad_debug_impl_glEvalCoord2d;
  PFNGLEVALCOORD2DVPROC glad_glEvalCoord2dv;
  void APIENTRY glad_debug_impl_glEvalCoord2dv(const GLdouble * arg0) {    
      _pre_call_callback_gl("glEvalCoord2dv", (void*)glEvalCoord2dv, 1, arg0);
       glad_glEvalCoord2dv(arg0);
      _post_call_callback_gl("glEvalCoord2dv", (void*)glEvalCoord2dv, 1, arg0);
      
  }
  PFNGLEVALCOORD2DVPROC glad_debug_glEvalCoord2dv = glad_debug_impl_glEvalCoord2dv;
  PFNGLEVALCOORD2FPROC glad_glEvalCoord2f;
  void APIENTRY glad_debug_impl_glEvalCoord2f(GLfloat arg0, GLfloat arg1) {    
      _pre_call_callback_gl("glEvalCoord2f", (void*)glEvalCoord2f, 2, arg0, arg1);
       glad_glEvalCoord2f(arg0, arg1);
      _post_call_callback_gl("glEvalCoord2f", (void*)glEvalCoord2f, 2, arg0, arg1);
      
  }
  PFNGLEVALCOORD2FPROC glad_debug_glEvalCoord2f = glad_debug_impl_glEvalCoord2f;
  PFNGLEVALCOORD2FVPROC glad_glEvalCoord2fv;
  void APIENTRY glad_debug_impl_glEvalCoord2fv(const GLfloat * arg0) {    
      _pre_call_callback_gl("glEvalCoord2fv", (void*)glEvalCoord2fv, 1, arg0);
       glad_glEvalCoord2fv(arg0);
      _post_call_callback_gl("glEvalCoord2fv", (void*)glEvalCoord2fv, 1, arg0);
      
  }
  PFNGLEVALCOORD2FVPROC glad_debug_glEvalCoord2fv = glad_debug_impl_glEvalCoord2fv;
  PFNGLEVALMESH1PROC glad_glEvalMesh1;
  void APIENTRY glad_debug_impl_glEvalMesh1(GLenum arg0, GLint arg1, GLint arg2) {    
      _pre_call_callback_gl("glEvalMesh1", (void*)glEvalMesh1, 3, arg0, arg1, arg2);
       glad_glEvalMesh1(arg0, arg1, arg2);
      _post_call_callback_gl("glEvalMesh1", (void*)glEvalMesh1, 3, arg0, arg1, arg2);
      
  }
  PFNGLEVALMESH1PROC glad_debug_glEvalMesh1 = glad_debug_impl_glEvalMesh1;
  PFNGLEVALMESH2PROC glad_glEvalMesh2;
  void APIENTRY glad_debug_impl_glEvalMesh2(GLenum arg0, GLint arg1, GLint arg2, GLint arg3, GLint arg4) {    
      _pre_call_callback_gl("glEvalMesh2", (void*)glEvalMesh2, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glEvalMesh2(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glEvalMesh2", (void*)glEvalMesh2, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLEVALMESH2PROC glad_debug_glEvalMesh2 = glad_debug_impl_glEvalMesh2;
  PFNGLEVALPOINT1PROC glad_glEvalPoint1;
  void APIENTRY glad_debug_impl_glEvalPoint1(GLint arg0) {    
      _pre_call_callback_gl("glEvalPoint1", (void*)glEvalPoint1, 1, arg0);
       glad_glEvalPoint1(arg0);
      _post_call_callback_gl("glEvalPoint1", (void*)glEvalPoint1, 1, arg0);
      
  }
  PFNGLEVALPOINT1PROC glad_debug_glEvalPoint1 = glad_debug_impl_glEvalPoint1;
  PFNGLEVALPOINT2PROC glad_glEvalPoint2;
  void APIENTRY glad_debug_impl_glEvalPoint2(GLint arg0, GLint arg1) {    
      _pre_call_callback_gl("glEvalPoint2", (void*)glEvalPoint2, 2, arg0, arg1);
       glad_glEvalPoint2(arg0, arg1);
      _post_call_callback_gl("glEvalPoint2", (void*)glEvalPoint2, 2, arg0, arg1);
      
  }
  PFNGLEVALPOINT2PROC glad_debug_glEvalPoint2 = glad_debug_impl_glEvalPoint2;
  PFNGLFEEDBACKBUFFERPROC glad_glFeedbackBuffer;
  void APIENTRY glad_debug_impl_glFeedbackBuffer(GLsizei arg0, GLenum arg1, GLfloat * arg2) {    
      _pre_call_callback_gl("glFeedbackBuffer", (void*)glFeedbackBuffer, 3, arg0, arg1, arg2);
       glad_glFeedbackBuffer(arg0, arg1, arg2);
      _post_call_callback_gl("glFeedbackBuffer", (void*)glFeedbackBuffer, 3, arg0, arg1, arg2);
      
  }
  PFNGLFEEDBACKBUFFERPROC glad_debug_glFeedbackBuffer = glad_debug_impl_glFeedbackBuffer;
  PFNGLFENCESYNCPROC glad_glFenceSync;
  GLsync APIENTRY glad_debug_impl_glFenceSync(GLenum arg0, GLbitfield arg1) {    
      GLsync ret;
      _pre_call_callback_gl("glFenceSync", (void*)glFenceSync, 2, arg0, arg1);
      ret =  glad_glFenceSync(arg0, arg1);
      _post_call_callback_gl("glFenceSync", (void*)glFenceSync, 2, arg0, arg1);
      return ret;
  }
  PFNGLFENCESYNCPROC glad_debug_glFenceSync = glad_debug_impl_glFenceSync;
  PFNGLFINISHPROC glad_glFinish;
  void APIENTRY glad_debug_impl_glFinish(void) {    
      _pre_call_callback_gl("glFinish", (void*)glFinish, 0);
       glad_glFinish();
      _post_call_callback_gl("glFinish", (void*)glFinish, 0);
      
  }
  PFNGLFINISHPROC glad_debug_glFinish = glad_debug_impl_glFinish;
  PFNGLFLUSHPROC glad_glFlush;
  void APIENTRY glad_debug_impl_glFlush(void) {    
      _pre_call_callback_gl("glFlush", (void*)glFlush, 0);
       glad_glFlush();
      _post_call_callback_gl("glFlush", (void*)glFlush, 0);
      
  }
  PFNGLFLUSHPROC glad_debug_glFlush = glad_debug_impl_glFlush;
  PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange;
  void APIENTRY glad_debug_impl_glFlushMappedBufferRange(GLenum arg0, GLintptr arg1, GLsizeiptr arg2) {    
      _pre_call_callback_gl("glFlushMappedBufferRange", (void*)glFlushMappedBufferRange, 3, arg0, arg1, arg2);
       glad_glFlushMappedBufferRange(arg0, arg1, arg2);
      _post_call_callback_gl("glFlushMappedBufferRange", (void*)glFlushMappedBufferRange, 3, arg0, arg1, arg2);
      
  }
  PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_debug_glFlushMappedBufferRange = glad_debug_impl_glFlushMappedBufferRange;
  PFNGLFOGCOORDPOINTERPROC glad_glFogCoordPointer;
  void APIENTRY glad_debug_impl_glFogCoordPointer(GLenum arg0, GLsizei arg1, const void * arg2) {    
      _pre_call_callback_gl("glFogCoordPointer", (void*)glFogCoordPointer, 3, arg0, arg1, arg2);
       glad_glFogCoordPointer(arg0, arg1, arg2);
      _post_call_callback_gl("glFogCoordPointer", (void*)glFogCoordPointer, 3, arg0, arg1, arg2);
      
  }
  PFNGLFOGCOORDPOINTERPROC glad_debug_glFogCoordPointer = glad_debug_impl_glFogCoordPointer;
  PFNGLFOGCOORDDPROC glad_glFogCoordd;
  void APIENTRY glad_debug_impl_glFogCoordd(GLdouble arg0) {    
      _pre_call_callback_gl("glFogCoordd", (void*)glFogCoordd, 1, arg0);
       glad_glFogCoordd(arg0);
      _post_call_callback_gl("glFogCoordd", (void*)glFogCoordd, 1, arg0);
      
  }
  PFNGLFOGCOORDDPROC glad_debug_glFogCoordd = glad_debug_impl_glFogCoordd;
  PFNGLFOGCOORDDVPROC glad_glFogCoorddv;
  void APIENTRY glad_debug_impl_glFogCoorddv(const GLdouble * arg0) {    
      _pre_call_callback_gl("glFogCoorddv", (void*)glFogCoorddv, 1, arg0);
       glad_glFogCoorddv(arg0);
      _post_call_callback_gl("glFogCoorddv", (void*)glFogCoorddv, 1, arg0);
      
  }
  PFNGLFOGCOORDDVPROC glad_debug_glFogCoorddv = glad_debug_impl_glFogCoorddv;
  PFNGLFOGCOORDFPROC glad_glFogCoordf;
  void APIENTRY glad_debug_impl_glFogCoordf(GLfloat arg0) {    
      _pre_call_callback_gl("glFogCoordf", (void*)glFogCoordf, 1, arg0);
       glad_glFogCoordf(arg0);
      _post_call_callback_gl("glFogCoordf", (void*)glFogCoordf, 1, arg0);
      
  }
  PFNGLFOGCOORDFPROC glad_debug_glFogCoordf = glad_debug_impl_glFogCoordf;
  PFNGLFOGCOORDFVPROC glad_glFogCoordfv;
  void APIENTRY glad_debug_impl_glFogCoordfv(const GLfloat * arg0) {    
      _pre_call_callback_gl("glFogCoordfv", (void*)glFogCoordfv, 1, arg0);
       glad_glFogCoordfv(arg0);
      _post_call_callback_gl("glFogCoordfv", (void*)glFogCoordfv, 1, arg0);
      
  }
  PFNGLFOGCOORDFVPROC glad_debug_glFogCoordfv = glad_debug_impl_glFogCoordfv;
  PFNGLFOGFPROC glad_glFogf;
  void APIENTRY glad_debug_impl_glFogf(GLenum arg0, GLfloat arg1) {    
      _pre_call_callback_gl("glFogf", (void*)glFogf, 2, arg0, arg1);
       glad_glFogf(arg0, arg1);
      _post_call_callback_gl("glFogf", (void*)glFogf, 2, arg0, arg1);
      
  }
  PFNGLFOGFPROC glad_debug_glFogf = glad_debug_impl_glFogf;
  PFNGLFOGFVPROC glad_glFogfv;
  void APIENTRY glad_debug_impl_glFogfv(GLenum arg0, const GLfloat * arg1) {    
      _pre_call_callback_gl("glFogfv", (void*)glFogfv, 2, arg0, arg1);
       glad_glFogfv(arg0, arg1);
      _post_call_callback_gl("glFogfv", (void*)glFogfv, 2, arg0, arg1);
      
  }
  PFNGLFOGFVPROC glad_debug_glFogfv = glad_debug_impl_glFogfv;
  PFNGLFOGIPROC glad_glFogi;
  void APIENTRY glad_debug_impl_glFogi(GLenum arg0, GLint arg1) {    
      _pre_call_callback_gl("glFogi", (void*)glFogi, 2, arg0, arg1);
       glad_glFogi(arg0, arg1);
      _post_call_callback_gl("glFogi", (void*)glFogi, 2, arg0, arg1);
      
  }
  PFNGLFOGIPROC glad_debug_glFogi = glad_debug_impl_glFogi;
  PFNGLFOGIVPROC glad_glFogiv;
  void APIENTRY glad_debug_impl_glFogiv(GLenum arg0, const GLint * arg1) {    
      _pre_call_callback_gl("glFogiv", (void*)glFogiv, 2, arg0, arg1);
       glad_glFogiv(arg0, arg1);
      _post_call_callback_gl("glFogiv", (void*)glFogiv, 2, arg0, arg1);
      
  }
  PFNGLFOGIVPROC glad_debug_glFogiv = glad_debug_impl_glFogiv;
  PFNGLFRAMEBUFFERPARAMETERIPROC glad_glFramebufferParameteri;
  void APIENTRY glad_debug_impl_glFramebufferParameteri(GLenum arg0, GLenum arg1, GLint arg2) {    
      _pre_call_callback_gl("glFramebufferParameteri", (void*)glFramebufferParameteri, 3, arg0, arg1, arg2);
       glad_glFramebufferParameteri(arg0, arg1, arg2);
      _post_call_callback_gl("glFramebufferParameteri", (void*)glFramebufferParameteri, 3, arg0, arg1, arg2);
      
  }
  PFNGLFRAMEBUFFERPARAMETERIPROC glad_debug_glFramebufferParameteri = glad_debug_impl_glFramebufferParameteri;
  PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer;
  void APIENTRY glad_debug_impl_glFramebufferRenderbuffer(GLenum arg0, GLenum arg1, GLenum arg2, GLuint arg3) {    
      _pre_call_callback_gl("glFramebufferRenderbuffer", (void*)glFramebufferRenderbuffer, 4, arg0, arg1, arg2, arg3);
       glad_glFramebufferRenderbuffer(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glFramebufferRenderbuffer", (void*)glFramebufferRenderbuffer, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_debug_glFramebufferRenderbuffer = glad_debug_impl_glFramebufferRenderbuffer;
  PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture;
  void APIENTRY glad_debug_impl_glFramebufferTexture(GLenum arg0, GLenum arg1, GLuint arg2, GLint arg3) {    
      _pre_call_callback_gl("glFramebufferTexture", (void*)glFramebufferTexture, 4, arg0, arg1, arg2, arg3);
       glad_glFramebufferTexture(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glFramebufferTexture", (void*)glFramebufferTexture, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLFRAMEBUFFERTEXTUREPROC glad_debug_glFramebufferTexture = glad_debug_impl_glFramebufferTexture;
  PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D;
  void APIENTRY glad_debug_impl_glFramebufferTexture1D(GLenum arg0, GLenum arg1, GLenum arg2, GLuint arg3, GLint arg4) {    
      _pre_call_callback_gl("glFramebufferTexture1D", (void*)glFramebufferTexture1D, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glFramebufferTexture1D(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glFramebufferTexture1D", (void*)glFramebufferTexture1D, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLFRAMEBUFFERTEXTURE1DPROC glad_debug_glFramebufferTexture1D = glad_debug_impl_glFramebufferTexture1D;
  PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D;
  void APIENTRY glad_debug_impl_glFramebufferTexture2D(GLenum arg0, GLenum arg1, GLenum arg2, GLuint arg3, GLint arg4) {    
      _pre_call_callback_gl("glFramebufferTexture2D", (void*)glFramebufferTexture2D, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glFramebufferTexture2D(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glFramebufferTexture2D", (void*)glFramebufferTexture2D, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLFRAMEBUFFERTEXTURE2DPROC glad_debug_glFramebufferTexture2D = glad_debug_impl_glFramebufferTexture2D;
  PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D;
  void APIENTRY glad_debug_impl_glFramebufferTexture3D(GLenum arg0, GLenum arg1, GLenum arg2, GLuint arg3, GLint arg4, GLint arg5) {    
      _pre_call_callback_gl("glFramebufferTexture3D", (void*)glFramebufferTexture3D, 6, arg0, arg1, arg2, arg3, arg4, arg5);
       glad_glFramebufferTexture3D(arg0, arg1, arg2, arg3, arg4, arg5);
      _post_call_callback_gl("glFramebufferTexture3D", (void*)glFramebufferTexture3D, 6, arg0, arg1, arg2, arg3, arg4, arg5);
      
  }
  PFNGLFRAMEBUFFERTEXTURE3DPROC glad_debug_glFramebufferTexture3D = glad_debug_impl_glFramebufferTexture3D;
  PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer;
  void APIENTRY glad_debug_impl_glFramebufferTextureLayer(GLenum arg0, GLenum arg1, GLuint arg2, GLint arg3, GLint arg4) {    
      _pre_call_callback_gl("glFramebufferTextureLayer", (void*)glFramebufferTextureLayer, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glFramebufferTextureLayer(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glFramebufferTextureLayer", (void*)glFramebufferTextureLayer, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_debug_glFramebufferTextureLayer = glad_debug_impl_glFramebufferTextureLayer;
  PFNGLFRONTFACEPROC glad_glFrontFace;
  void APIENTRY glad_debug_impl_glFrontFace(GLenum arg0) {    
      _pre_call_callback_gl("glFrontFace", (void*)glFrontFace, 1, arg0);
       glad_glFrontFace(arg0);
      _post_call_callback_gl("glFrontFace", (void*)glFrontFace, 1, arg0);
      
  }
  PFNGLFRONTFACEPROC glad_debug_glFrontFace = glad_debug_impl_glFrontFace;
  PFNGLFRUSTUMPROC glad_glFrustum;
  void APIENTRY glad_debug_impl_glFrustum(GLdouble arg0, GLdouble arg1, GLdouble arg2, GLdouble arg3, GLdouble arg4, GLdouble arg5) {    
      _pre_call_callback_gl("glFrustum", (void*)glFrustum, 6, arg0, arg1, arg2, arg3, arg4, arg5);
       glad_glFrustum(arg0, arg1, arg2, arg3, arg4, arg5);
      _post_call_callback_gl("glFrustum", (void*)glFrustum, 6, arg0, arg1, arg2, arg3, arg4, arg5);
      
  }
  PFNGLFRUSTUMPROC glad_debug_glFrustum = glad_debug_impl_glFrustum;
  PFNGLGENBUFFERSPROC glad_glGenBuffers;
  void APIENTRY glad_debug_impl_glGenBuffers(GLsizei arg0, GLuint * arg1) {    
      _pre_call_callback_gl("glGenBuffers", (void*)glGenBuffers, 2, arg0, arg1);
       glad_glGenBuffers(arg0, arg1);
      _post_call_callback_gl("glGenBuffers", (void*)glGenBuffers, 2, arg0, arg1);
      
  }
  PFNGLGENBUFFERSPROC glad_debug_glGenBuffers = glad_debug_impl_glGenBuffers;
  PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers;
  void APIENTRY glad_debug_impl_glGenFramebuffers(GLsizei arg0, GLuint * arg1) {    
      _pre_call_callback_gl("glGenFramebuffers", (void*)glGenFramebuffers, 2, arg0, arg1);
       glad_glGenFramebuffers(arg0, arg1);
      _post_call_callback_gl("glGenFramebuffers", (void*)glGenFramebuffers, 2, arg0, arg1);
      
  }
  PFNGLGENFRAMEBUFFERSPROC glad_debug_glGenFramebuffers = glad_debug_impl_glGenFramebuffers;
  PFNGLGENLISTSPROC glad_glGenLists;
  GLuint APIENTRY glad_debug_impl_glGenLists(GLsizei arg0) {    
      GLuint ret;
      _pre_call_callback_gl("glGenLists", (void*)glGenLists, 1, arg0);
      ret =  glad_glGenLists(arg0);
      _post_call_callback_gl("glGenLists", (void*)glGenLists, 1, arg0);
      return ret;
  }
  PFNGLGENLISTSPROC glad_debug_glGenLists = glad_debug_impl_glGenLists;
  PFNGLGENPROGRAMPIPELINESPROC glad_glGenProgramPipelines;
  void APIENTRY glad_debug_impl_glGenProgramPipelines(GLsizei arg0, GLuint * arg1) {    
      _pre_call_callback_gl("glGenProgramPipelines", (void*)glGenProgramPipelines, 2, arg0, arg1);
       glad_glGenProgramPipelines(arg0, arg1);
      _post_call_callback_gl("glGenProgramPipelines", (void*)glGenProgramPipelines, 2, arg0, arg1);
      
  }
  PFNGLGENPROGRAMPIPELINESPROC glad_debug_glGenProgramPipelines = glad_debug_impl_glGenProgramPipelines;
  PFNGLGENQUERIESPROC glad_glGenQueries;
  void APIENTRY glad_debug_impl_glGenQueries(GLsizei arg0, GLuint * arg1) {    
      _pre_call_callback_gl("glGenQueries", (void*)glGenQueries, 2, arg0, arg1);
       glad_glGenQueries(arg0, arg1);
      _post_call_callback_gl("glGenQueries", (void*)glGenQueries, 2, arg0, arg1);
      
  }
  PFNGLGENQUERIESPROC glad_debug_glGenQueries = glad_debug_impl_glGenQueries;
  PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers;
  void APIENTRY glad_debug_impl_glGenRenderbuffers(GLsizei arg0, GLuint * arg1) {    
      _pre_call_callback_gl("glGenRenderbuffers", (void*)glGenRenderbuffers, 2, arg0, arg1);
       glad_glGenRenderbuffers(arg0, arg1);
      _post_call_callback_gl("glGenRenderbuffers", (void*)glGenRenderbuffers, 2, arg0, arg1);
      
  }
  PFNGLGENRENDERBUFFERSPROC glad_debug_glGenRenderbuffers = glad_debug_impl_glGenRenderbuffers;
  PFNGLGENSAMPLERSPROC glad_glGenSamplers;
  void APIENTRY glad_debug_impl_glGenSamplers(GLsizei arg0, GLuint * arg1) {    
      _pre_call_callback_gl("glGenSamplers", (void*)glGenSamplers, 2, arg0, arg1);
       glad_glGenSamplers(arg0, arg1);
      _post_call_callback_gl("glGenSamplers", (void*)glGenSamplers, 2, arg0, arg1);
      
  }
  PFNGLGENSAMPLERSPROC glad_debug_glGenSamplers = glad_debug_impl_glGenSamplers;
  PFNGLGENTEXTURESPROC glad_glGenTextures;
  void APIENTRY glad_debug_impl_glGenTextures(GLsizei arg0, GLuint * arg1) {    
      _pre_call_callback_gl("glGenTextures", (void*)glGenTextures, 2, arg0, arg1);
       glad_glGenTextures(arg0, arg1);
      _post_call_callback_gl("glGenTextures", (void*)glGenTextures, 2, arg0, arg1);
      
  }
  PFNGLGENTEXTURESPROC glad_debug_glGenTextures = glad_debug_impl_glGenTextures;
  PFNGLGENTRANSFORMFEEDBACKSPROC glad_glGenTransformFeedbacks;
  void APIENTRY glad_debug_impl_glGenTransformFeedbacks(GLsizei arg0, GLuint * arg1) {    
      _pre_call_callback_gl("glGenTransformFeedbacks", (void*)glGenTransformFeedbacks, 2, arg0, arg1);
       glad_glGenTransformFeedbacks(arg0, arg1);
      _post_call_callback_gl("glGenTransformFeedbacks", (void*)glGenTransformFeedbacks, 2, arg0, arg1);
      
  }
  PFNGLGENTRANSFORMFEEDBACKSPROC glad_debug_glGenTransformFeedbacks = glad_debug_impl_glGenTransformFeedbacks;
  PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays;
  void APIENTRY glad_debug_impl_glGenVertexArrays(GLsizei arg0, GLuint * arg1) {    
      _pre_call_callback_gl("glGenVertexArrays", (void*)glGenVertexArrays, 2, arg0, arg1);
       glad_glGenVertexArrays(arg0, arg1);
      _post_call_callback_gl("glGenVertexArrays", (void*)glGenVertexArrays, 2, arg0, arg1);
      
  }
  PFNGLGENVERTEXARRAYSPROC glad_debug_glGenVertexArrays = glad_debug_impl_glGenVertexArrays;
  PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap;
  void APIENTRY glad_debug_impl_glGenerateMipmap(GLenum arg0) {    
      _pre_call_callback_gl("glGenerateMipmap", (void*)glGenerateMipmap, 1, arg0);
       glad_glGenerateMipmap(arg0);
      _post_call_callback_gl("glGenerateMipmap", (void*)glGenerateMipmap, 1, arg0);
      
  }
  PFNGLGENERATEMIPMAPPROC glad_debug_glGenerateMipmap = glad_debug_impl_glGenerateMipmap;
  PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC glad_glGetActiveAtomicCounterBufferiv;
  void APIENTRY glad_debug_impl_glGetActiveAtomicCounterBufferiv(GLuint arg0, GLuint arg1, GLenum arg2, GLint * arg3) {    
      _pre_call_callback_gl("glGetActiveAtomicCounterBufferiv", (void*)glGetActiveAtomicCounterBufferiv, 4, arg0, arg1, arg2, arg3);
       glad_glGetActiveAtomicCounterBufferiv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glGetActiveAtomicCounterBufferiv", (void*)glGetActiveAtomicCounterBufferiv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC glad_debug_glGetActiveAtomicCounterBufferiv = glad_debug_impl_glGetActiveAtomicCounterBufferiv;
  PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib;
  void APIENTRY glad_debug_impl_glGetActiveAttrib(GLuint arg0, GLuint arg1, GLsizei arg2, GLsizei * arg3, GLint * arg4, GLenum * arg5, GLchar * arg6) {    
      _pre_call_callback_gl("glGetActiveAttrib", (void*)glGetActiveAttrib, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
       glad_glGetActiveAttrib(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      _post_call_callback_gl("glGetActiveAttrib", (void*)glGetActiveAttrib, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      
  }
  PFNGLGETACTIVEATTRIBPROC glad_debug_glGetActiveAttrib = glad_debug_impl_glGetActiveAttrib;
  PFNGLGETACTIVESUBROUTINENAMEPROC glad_glGetActiveSubroutineName;
  void APIENTRY glad_debug_impl_glGetActiveSubroutineName(GLuint arg0, GLenum arg1, GLuint arg2, GLsizei arg3, GLsizei * arg4, GLchar * arg5) {    
      _pre_call_callback_gl("glGetActiveSubroutineName", (void*)glGetActiveSubroutineName, 6, arg0, arg1, arg2, arg3, arg4, arg5);
       glad_glGetActiveSubroutineName(arg0, arg1, arg2, arg3, arg4, arg5);
      _post_call_callback_gl("glGetActiveSubroutineName", (void*)glGetActiveSubroutineName, 6, arg0, arg1, arg2, arg3, arg4, arg5);
      
  }
  PFNGLGETACTIVESUBROUTINENAMEPROC glad_debug_glGetActiveSubroutineName = glad_debug_impl_glGetActiveSubroutineName;
  PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC glad_glGetActiveSubroutineUniformName;
  void APIENTRY glad_debug_impl_glGetActiveSubroutineUniformName(GLuint arg0, GLenum arg1, GLuint arg2, GLsizei arg3, GLsizei * arg4, GLchar * arg5) {    
      _pre_call_callback_gl("glGetActiveSubroutineUniformName", (void*)glGetActiveSubroutineUniformName, 6, arg0, arg1, arg2, arg3, arg4, arg5);
       glad_glGetActiveSubroutineUniformName(arg0, arg1, arg2, arg3, arg4, arg5);
      _post_call_callback_gl("glGetActiveSubroutineUniformName", (void*)glGetActiveSubroutineUniformName, 6, arg0, arg1, arg2, arg3, arg4, arg5);
      
  }
  PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC glad_debug_glGetActiveSubroutineUniformName = glad_debug_impl_glGetActiveSubroutineUniformName;
  PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC glad_glGetActiveSubroutineUniformiv;
  void APIENTRY glad_debug_impl_glGetActiveSubroutineUniformiv(GLuint arg0, GLenum arg1, GLuint arg2, GLenum arg3, GLint * arg4) {    
      _pre_call_callback_gl("glGetActiveSubroutineUniformiv", (void*)glGetActiveSubroutineUniformiv, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glGetActiveSubroutineUniformiv(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glGetActiveSubroutineUniformiv", (void*)glGetActiveSubroutineUniformiv, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC glad_debug_glGetActiveSubroutineUniformiv = glad_debug_impl_glGetActiveSubroutineUniformiv;
  PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform;
  void APIENTRY glad_debug_impl_glGetActiveUniform(GLuint arg0, GLuint arg1, GLsizei arg2, GLsizei * arg3, GLint * arg4, GLenum * arg5, GLchar * arg6) {    
      _pre_call_callback_gl("glGetActiveUniform", (void*)glGetActiveUniform, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
       glad_glGetActiveUniform(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      _post_call_callback_gl("glGetActiveUniform", (void*)glGetActiveUniform, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      
  }
  PFNGLGETACTIVEUNIFORMPROC glad_debug_glGetActiveUniform = glad_debug_impl_glGetActiveUniform;
  PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName;
  void APIENTRY glad_debug_impl_glGetActiveUniformBlockName(GLuint arg0, GLuint arg1, GLsizei arg2, GLsizei * arg3, GLchar * arg4) {    
      _pre_call_callback_gl("glGetActiveUniformBlockName", (void*)glGetActiveUniformBlockName, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glGetActiveUniformBlockName(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glGetActiveUniformBlockName", (void*)glGetActiveUniformBlockName, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_debug_glGetActiveUniformBlockName = glad_debug_impl_glGetActiveUniformBlockName;
  PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv;
  void APIENTRY glad_debug_impl_glGetActiveUniformBlockiv(GLuint arg0, GLuint arg1, GLenum arg2, GLint * arg3) {    
      _pre_call_callback_gl("glGetActiveUniformBlockiv", (void*)glGetActiveUniformBlockiv, 4, arg0, arg1, arg2, arg3);
       glad_glGetActiveUniformBlockiv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glGetActiveUniformBlockiv", (void*)glGetActiveUniformBlockiv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_debug_glGetActiveUniformBlockiv = glad_debug_impl_glGetActiveUniformBlockiv;
  PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName;
  void APIENTRY glad_debug_impl_glGetActiveUniformName(GLuint arg0, GLuint arg1, GLsizei arg2, GLsizei * arg3, GLchar * arg4) {    
      _pre_call_callback_gl("glGetActiveUniformName", (void*)glGetActiveUniformName, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glGetActiveUniformName(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glGetActiveUniformName", (void*)glGetActiveUniformName, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLGETACTIVEUNIFORMNAMEPROC glad_debug_glGetActiveUniformName = glad_debug_impl_glGetActiveUniformName;
  PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv;
  void APIENTRY glad_debug_impl_glGetActiveUniformsiv(GLuint arg0, GLsizei arg1, const GLuint * arg2, GLenum arg3, GLint * arg4) {    
      _pre_call_callback_gl("glGetActiveUniformsiv", (void*)glGetActiveUniformsiv, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glGetActiveUniformsiv(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glGetActiveUniformsiv", (void*)glGetActiveUniformsiv, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLGETACTIVEUNIFORMSIVPROC glad_debug_glGetActiveUniformsiv = glad_debug_impl_glGetActiveUniformsiv;
  PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders;
  void APIENTRY glad_debug_impl_glGetAttachedShaders(GLuint arg0, GLsizei arg1, GLsizei * arg2, GLuint * arg3) {    
      _pre_call_callback_gl("glGetAttachedShaders", (void*)glGetAttachedShaders, 4, arg0, arg1, arg2, arg3);
       glad_glGetAttachedShaders(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glGetAttachedShaders", (void*)glGetAttachedShaders, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLGETATTACHEDSHADERSPROC glad_debug_glGetAttachedShaders = glad_debug_impl_glGetAttachedShaders;
  PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation;
  GLint APIENTRY glad_debug_impl_glGetAttribLocation(GLuint arg0, const GLchar * arg1) {    
      GLint ret;
      _pre_call_callback_gl("glGetAttribLocation", (void*)glGetAttribLocation, 2, arg0, arg1);
      ret =  glad_glGetAttribLocation(arg0, arg1);
      _post_call_callback_gl("glGetAttribLocation", (void*)glGetAttribLocation, 2, arg0, arg1);
      return ret;
  }
  PFNGLGETATTRIBLOCATIONPROC glad_debug_glGetAttribLocation = glad_debug_impl_glGetAttribLocation;
  PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v;
  void APIENTRY glad_debug_impl_glGetBooleani_v(GLenum arg0, GLuint arg1, GLboolean * arg2) {    
      _pre_call_callback_gl("glGetBooleani_v", (void*)glGetBooleani_v, 3, arg0, arg1, arg2);
       glad_glGetBooleani_v(arg0, arg1, arg2);
      _post_call_callback_gl("glGetBooleani_v", (void*)glGetBooleani_v, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETBOOLEANI_VPROC glad_debug_glGetBooleani_v = glad_debug_impl_glGetBooleani_v;
  PFNGLGETBOOLEANVPROC glad_glGetBooleanv;
  void APIENTRY glad_debug_impl_glGetBooleanv(GLenum arg0, GLboolean * arg1) {    
      _pre_call_callback_gl("glGetBooleanv", (void*)glGetBooleanv, 2, arg0, arg1);
       glad_glGetBooleanv(arg0, arg1);
      _post_call_callback_gl("glGetBooleanv", (void*)glGetBooleanv, 2, arg0, arg1);
      
  }
  PFNGLGETBOOLEANVPROC glad_debug_glGetBooleanv = glad_debug_impl_glGetBooleanv;
  PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v;
  void APIENTRY glad_debug_impl_glGetBufferParameteri64v(GLenum arg0, GLenum arg1, GLint64 * arg2) {    
      _pre_call_callback_gl("glGetBufferParameteri64v", (void*)glGetBufferParameteri64v, 3, arg0, arg1, arg2);
       glad_glGetBufferParameteri64v(arg0, arg1, arg2);
      _post_call_callback_gl("glGetBufferParameteri64v", (void*)glGetBufferParameteri64v, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETBUFFERPARAMETERI64VPROC glad_debug_glGetBufferParameteri64v = glad_debug_impl_glGetBufferParameteri64v;
  PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv;
  void APIENTRY glad_debug_impl_glGetBufferParameteriv(GLenum arg0, GLenum arg1, GLint * arg2) {    
      _pre_call_callback_gl("glGetBufferParameteriv", (void*)glGetBufferParameteriv, 3, arg0, arg1, arg2);
       glad_glGetBufferParameteriv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetBufferParameteriv", (void*)glGetBufferParameteriv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETBUFFERPARAMETERIVPROC glad_debug_glGetBufferParameteriv = glad_debug_impl_glGetBufferParameteriv;
  PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv;
  void APIENTRY glad_debug_impl_glGetBufferPointerv(GLenum arg0, GLenum arg1, void ** arg2) {    
      _pre_call_callback_gl("glGetBufferPointerv", (void*)glGetBufferPointerv, 3, arg0, arg1, arg2);
       glad_glGetBufferPointerv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetBufferPointerv", (void*)glGetBufferPointerv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETBUFFERPOINTERVPROC glad_debug_glGetBufferPointerv = glad_debug_impl_glGetBufferPointerv;
  PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData;
  void APIENTRY glad_debug_impl_glGetBufferSubData(GLenum arg0, GLintptr arg1, GLsizeiptr arg2, void * arg3) {    
      _pre_call_callback_gl("glGetBufferSubData", (void*)glGetBufferSubData, 4, arg0, arg1, arg2, arg3);
       glad_glGetBufferSubData(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glGetBufferSubData", (void*)glGetBufferSubData, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLGETBUFFERSUBDATAPROC glad_debug_glGetBufferSubData = glad_debug_impl_glGetBufferSubData;
  PFNGLGETCLIPPLANEPROC glad_glGetClipPlane;
  void APIENTRY glad_debug_impl_glGetClipPlane(GLenum arg0, GLdouble * arg1) {    
      _pre_call_callback_gl("glGetClipPlane", (void*)glGetClipPlane, 2, arg0, arg1);
       glad_glGetClipPlane(arg0, arg1);
      _post_call_callback_gl("glGetClipPlane", (void*)glGetClipPlane, 2, arg0, arg1);
      
  }
  PFNGLGETCLIPPLANEPROC glad_debug_glGetClipPlane = glad_debug_impl_glGetClipPlane;
  PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage;
  void APIENTRY glad_debug_impl_glGetCompressedTexImage(GLenum arg0, GLint arg1, void * arg2) {    
      _pre_call_callback_gl("glGetCompressedTexImage", (void*)glGetCompressedTexImage, 3, arg0, arg1, arg2);
       glad_glGetCompressedTexImage(arg0, arg1, arg2);
      _post_call_callback_gl("glGetCompressedTexImage", (void*)glGetCompressedTexImage, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_debug_glGetCompressedTexImage = glad_debug_impl_glGetCompressedTexImage;
  PFNGLGETDEBUGMESSAGELOGPROC glad_glGetDebugMessageLog;
  GLuint APIENTRY glad_debug_impl_glGetDebugMessageLog(GLuint arg0, GLsizei arg1, GLenum * arg2, GLenum * arg3, GLuint * arg4, GLenum * arg5, GLsizei * arg6, GLchar * arg7) {    
      GLuint ret;
      _pre_call_callback_gl("glGetDebugMessageLog", (void*)glGetDebugMessageLog, 8, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
      ret =  glad_glGetDebugMessageLog(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
      _post_call_callback_gl("glGetDebugMessageLog", (void*)glGetDebugMessageLog, 8, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
      return ret;
  }
  PFNGLGETDEBUGMESSAGELOGPROC glad_debug_glGetDebugMessageLog = glad_debug_impl_glGetDebugMessageLog;
  PFNGLGETDOUBLEI_VPROC glad_glGetDoublei_v;
  void APIENTRY glad_debug_impl_glGetDoublei_v(GLenum arg0, GLuint arg1, GLdouble * arg2) {    
      _pre_call_callback_gl("glGetDoublei_v", (void*)glGetDoublei_v, 3, arg0, arg1, arg2);
       glad_glGetDoublei_v(arg0, arg1, arg2);
      _post_call_callback_gl("glGetDoublei_v", (void*)glGetDoublei_v, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETDOUBLEI_VPROC glad_debug_glGetDoublei_v = glad_debug_impl_glGetDoublei_v;
  PFNGLGETDOUBLEVPROC glad_glGetDoublev;
  void APIENTRY glad_debug_impl_glGetDoublev(GLenum arg0, GLdouble * arg1) {    
      _pre_call_callback_gl("glGetDoublev", (void*)glGetDoublev, 2, arg0, arg1);
       glad_glGetDoublev(arg0, arg1);
      _post_call_callback_gl("glGetDoublev", (void*)glGetDoublev, 2, arg0, arg1);
      
  }
  PFNGLGETDOUBLEVPROC glad_debug_glGetDoublev = glad_debug_impl_glGetDoublev;
  PFNGLGETERRORPROC glad_glGetError;
  GLenum APIENTRY glad_debug_impl_glGetError(void) {    
      GLenum ret;
      _pre_call_callback_gl("glGetError", (void*)glGetError, 0);
      ret =  glad_glGetError();
      _post_call_callback_gl("glGetError", (void*)glGetError, 0);
      return ret;
  }
  PFNGLGETERRORPROC glad_debug_glGetError = glad_debug_impl_glGetError;
  PFNGLGETFLOATI_VPROC glad_glGetFloati_v;
  void APIENTRY glad_debug_impl_glGetFloati_v(GLenum arg0, GLuint arg1, GLfloat * arg2) {    
      _pre_call_callback_gl("glGetFloati_v", (void*)glGetFloati_v, 3, arg0, arg1, arg2);
       glad_glGetFloati_v(arg0, arg1, arg2);
      _post_call_callback_gl("glGetFloati_v", (void*)glGetFloati_v, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETFLOATI_VPROC glad_debug_glGetFloati_v = glad_debug_impl_glGetFloati_v;
  PFNGLGETFLOATVPROC glad_glGetFloatv;
  void APIENTRY glad_debug_impl_glGetFloatv(GLenum arg0, GLfloat * arg1) {    
      _pre_call_callback_gl("glGetFloatv", (void*)glGetFloatv, 2, arg0, arg1);
       glad_glGetFloatv(arg0, arg1);
      _post_call_callback_gl("glGetFloatv", (void*)glGetFloatv, 2, arg0, arg1);
      
  }
  PFNGLGETFLOATVPROC glad_debug_glGetFloatv = glad_debug_impl_glGetFloatv;
  PFNGLGETFRAGDATAINDEXPROC glad_glGetFragDataIndex;
  GLint APIENTRY glad_debug_impl_glGetFragDataIndex(GLuint arg0, const GLchar * arg1) {    
      GLint ret;
      _pre_call_callback_gl("glGetFragDataIndex", (void*)glGetFragDataIndex, 2, arg0, arg1);
      ret =  glad_glGetFragDataIndex(arg0, arg1);
      _post_call_callback_gl("glGetFragDataIndex", (void*)glGetFragDataIndex, 2, arg0, arg1);
      return ret;
  }
  PFNGLGETFRAGDATAINDEXPROC glad_debug_glGetFragDataIndex = glad_debug_impl_glGetFragDataIndex;
  PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation;
  GLint APIENTRY glad_debug_impl_glGetFragDataLocation(GLuint arg0, const GLchar * arg1) {    
      GLint ret;
      _pre_call_callback_gl("glGetFragDataLocation", (void*)glGetFragDataLocation, 2, arg0, arg1);
      ret =  glad_glGetFragDataLocation(arg0, arg1);
      _post_call_callback_gl("glGetFragDataLocation", (void*)glGetFragDataLocation, 2, arg0, arg1);
      return ret;
  }
  PFNGLGETFRAGDATALOCATIONPROC glad_debug_glGetFragDataLocation = glad_debug_impl_glGetFragDataLocation;
  PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv;
  void APIENTRY glad_debug_impl_glGetFramebufferAttachmentParameteriv(GLenum arg0, GLenum arg1, GLenum arg2, GLint * arg3) {    
      _pre_call_callback_gl("glGetFramebufferAttachmentParameteriv", (void*)glGetFramebufferAttachmentParameteriv, 4, arg0, arg1, arg2, arg3);
       glad_glGetFramebufferAttachmentParameteriv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glGetFramebufferAttachmentParameteriv", (void*)glGetFramebufferAttachmentParameteriv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_debug_glGetFramebufferAttachmentParameteriv = glad_debug_impl_glGetFramebufferAttachmentParameteriv;
  PFNGLGETFRAMEBUFFERPARAMETERIVPROC glad_glGetFramebufferParameteriv;
  void APIENTRY glad_debug_impl_glGetFramebufferParameteriv(GLenum arg0, GLenum arg1, GLint * arg2) {    
      _pre_call_callback_gl("glGetFramebufferParameteriv", (void*)glGetFramebufferParameteriv, 3, arg0, arg1, arg2);
       glad_glGetFramebufferParameteriv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetFramebufferParameteriv", (void*)glGetFramebufferParameteriv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETFRAMEBUFFERPARAMETERIVPROC glad_debug_glGetFramebufferParameteriv = glad_debug_impl_glGetFramebufferParameteriv;
  PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v;
  void APIENTRY glad_debug_impl_glGetInteger64i_v(GLenum arg0, GLuint arg1, GLint64 * arg2) {    
      _pre_call_callback_gl("glGetInteger64i_v", (void*)glGetInteger64i_v, 3, arg0, arg1, arg2);
       glad_glGetInteger64i_v(arg0, arg1, arg2);
      _post_call_callback_gl("glGetInteger64i_v", (void*)glGetInteger64i_v, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETINTEGER64I_VPROC glad_debug_glGetInteger64i_v = glad_debug_impl_glGetInteger64i_v;
  PFNGLGETINTEGER64VPROC glad_glGetInteger64v;
  void APIENTRY glad_debug_impl_glGetInteger64v(GLenum arg0, GLint64 * arg1) {    
      _pre_call_callback_gl("glGetInteger64v", (void*)glGetInteger64v, 2, arg0, arg1);
       glad_glGetInteger64v(arg0, arg1);
      _post_call_callback_gl("glGetInteger64v", (void*)glGetInteger64v, 2, arg0, arg1);
      
  }
  PFNGLGETINTEGER64VPROC glad_debug_glGetInteger64v = glad_debug_impl_glGetInteger64v;
  PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v;
  void APIENTRY glad_debug_impl_glGetIntegeri_v(GLenum arg0, GLuint arg1, GLint * arg2) {    
      _pre_call_callback_gl("glGetIntegeri_v", (void*)glGetIntegeri_v, 3, arg0, arg1, arg2);
       glad_glGetIntegeri_v(arg0, arg1, arg2);
      _post_call_callback_gl("glGetIntegeri_v", (void*)glGetIntegeri_v, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETINTEGERI_VPROC glad_debug_glGetIntegeri_v = glad_debug_impl_glGetIntegeri_v;
  PFNGLGETINTEGERVPROC glad_glGetIntegerv;
  void APIENTRY glad_debug_impl_glGetIntegerv(GLenum arg0, GLint * arg1) {    
      _pre_call_callback_gl("glGetIntegerv", (void*)glGetIntegerv, 2, arg0, arg1);
       glad_glGetIntegerv(arg0, arg1);
      _post_call_callback_gl("glGetIntegerv", (void*)glGetIntegerv, 2, arg0, arg1);
      
  }
  PFNGLGETINTEGERVPROC glad_debug_glGetIntegerv = glad_debug_impl_glGetIntegerv;
  PFNGLGETINTERNALFORMATI64VPROC glad_glGetInternalformati64v;
  void APIENTRY glad_debug_impl_glGetInternalformati64v(GLenum arg0, GLenum arg1, GLenum arg2, GLsizei arg3, GLint64 * arg4) {    
      _pre_call_callback_gl("glGetInternalformati64v", (void*)glGetInternalformati64v, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glGetInternalformati64v(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glGetInternalformati64v", (void*)glGetInternalformati64v, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLGETINTERNALFORMATI64VPROC glad_debug_glGetInternalformati64v = glad_debug_impl_glGetInternalformati64v;
  PFNGLGETINTERNALFORMATIVPROC glad_glGetInternalformativ;
  void APIENTRY glad_debug_impl_glGetInternalformativ(GLenum arg0, GLenum arg1, GLenum arg2, GLsizei arg3, GLint * arg4) {    
      _pre_call_callback_gl("glGetInternalformativ", (void*)glGetInternalformativ, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glGetInternalformativ(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glGetInternalformativ", (void*)glGetInternalformativ, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLGETINTERNALFORMATIVPROC glad_debug_glGetInternalformativ = glad_debug_impl_glGetInternalformativ;
  PFNGLGETLIGHTFVPROC glad_glGetLightfv;
  void APIENTRY glad_debug_impl_glGetLightfv(GLenum arg0, GLenum arg1, GLfloat * arg2) {    
      _pre_call_callback_gl("glGetLightfv", (void*)glGetLightfv, 3, arg0, arg1, arg2);
       glad_glGetLightfv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetLightfv", (void*)glGetLightfv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETLIGHTFVPROC glad_debug_glGetLightfv = glad_debug_impl_glGetLightfv;
  PFNGLGETLIGHTIVPROC glad_glGetLightiv;
  void APIENTRY glad_debug_impl_glGetLightiv(GLenum arg0, GLenum arg1, GLint * arg2) {    
      _pre_call_callback_gl("glGetLightiv", (void*)glGetLightiv, 3, arg0, arg1, arg2);
       glad_glGetLightiv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetLightiv", (void*)glGetLightiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETLIGHTIVPROC glad_debug_glGetLightiv = glad_debug_impl_glGetLightiv;
  PFNGLGETMAPDVPROC glad_glGetMapdv;
  void APIENTRY glad_debug_impl_glGetMapdv(GLenum arg0, GLenum arg1, GLdouble * arg2) {    
      _pre_call_callback_gl("glGetMapdv", (void*)glGetMapdv, 3, arg0, arg1, arg2);
       glad_glGetMapdv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetMapdv", (void*)glGetMapdv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETMAPDVPROC glad_debug_glGetMapdv = glad_debug_impl_glGetMapdv;
  PFNGLGETMAPFVPROC glad_glGetMapfv;
  void APIENTRY glad_debug_impl_glGetMapfv(GLenum arg0, GLenum arg1, GLfloat * arg2) {    
      _pre_call_callback_gl("glGetMapfv", (void*)glGetMapfv, 3, arg0, arg1, arg2);
       glad_glGetMapfv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetMapfv", (void*)glGetMapfv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETMAPFVPROC glad_debug_glGetMapfv = glad_debug_impl_glGetMapfv;
  PFNGLGETMAPIVPROC glad_glGetMapiv;
  void APIENTRY glad_debug_impl_glGetMapiv(GLenum arg0, GLenum arg1, GLint * arg2) {    
      _pre_call_callback_gl("glGetMapiv", (void*)glGetMapiv, 3, arg0, arg1, arg2);
       glad_glGetMapiv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetMapiv", (void*)glGetMapiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETMAPIVPROC glad_debug_glGetMapiv = glad_debug_impl_glGetMapiv;
  PFNGLGETMATERIALFVPROC glad_glGetMaterialfv;
  void APIENTRY glad_debug_impl_glGetMaterialfv(GLenum arg0, GLenum arg1, GLfloat * arg2) {    
      _pre_call_callback_gl("glGetMaterialfv", (void*)glGetMaterialfv, 3, arg0, arg1, arg2);
       glad_glGetMaterialfv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetMaterialfv", (void*)glGetMaterialfv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETMATERIALFVPROC glad_debug_glGetMaterialfv = glad_debug_impl_glGetMaterialfv;
  PFNGLGETMATERIALIVPROC glad_glGetMaterialiv;
  void APIENTRY glad_debug_impl_glGetMaterialiv(GLenum arg0, GLenum arg1, GLint * arg2) {    
      _pre_call_callback_gl("glGetMaterialiv", (void*)glGetMaterialiv, 3, arg0, arg1, arg2);
       glad_glGetMaterialiv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetMaterialiv", (void*)glGetMaterialiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETMATERIALIVPROC glad_debug_glGetMaterialiv = glad_debug_impl_glGetMaterialiv;
  PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv;
  void APIENTRY glad_debug_impl_glGetMultisamplefv(GLenum arg0, GLuint arg1, GLfloat * arg2) {    
      _pre_call_callback_gl("glGetMultisamplefv", (void*)glGetMultisamplefv, 3, arg0, arg1, arg2);
       glad_glGetMultisamplefv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetMultisamplefv", (void*)glGetMultisamplefv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETMULTISAMPLEFVPROC glad_debug_glGetMultisamplefv = glad_debug_impl_glGetMultisamplefv;
  PFNGLGETOBJECTLABELPROC glad_glGetObjectLabel;
  void APIENTRY glad_debug_impl_glGetObjectLabel(GLenum arg0, GLuint arg1, GLsizei arg2, GLsizei * arg3, GLchar * arg4) {    
      _pre_call_callback_gl("glGetObjectLabel", (void*)glGetObjectLabel, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glGetObjectLabel(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glGetObjectLabel", (void*)glGetObjectLabel, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLGETOBJECTLABELPROC glad_debug_glGetObjectLabel = glad_debug_impl_glGetObjectLabel;
  PFNGLGETOBJECTPTRLABELPROC glad_glGetObjectPtrLabel;
  void APIENTRY glad_debug_impl_glGetObjectPtrLabel(const void * arg0, GLsizei arg1, GLsizei * arg2, GLchar * arg3) {    
      _pre_call_callback_gl("glGetObjectPtrLabel", (void*)glGetObjectPtrLabel, 4, arg0, arg1, arg2, arg3);
       glad_glGetObjectPtrLabel(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glGetObjectPtrLabel", (void*)glGetObjectPtrLabel, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLGETOBJECTPTRLABELPROC glad_debug_glGetObjectPtrLabel = glad_debug_impl_glGetObjectPtrLabel;
  PFNGLGETPIXELMAPFVPROC glad_glGetPixelMapfv;
  void APIENTRY glad_debug_impl_glGetPixelMapfv(GLenum arg0, GLfloat * arg1) {    
      _pre_call_callback_gl("glGetPixelMapfv", (void*)glGetPixelMapfv, 2, arg0, arg1);
       glad_glGetPixelMapfv(arg0, arg1);
      _post_call_callback_gl("glGetPixelMapfv", (void*)glGetPixelMapfv, 2, arg0, arg1);
      
  }
  PFNGLGETPIXELMAPFVPROC glad_debug_glGetPixelMapfv = glad_debug_impl_glGetPixelMapfv;
  PFNGLGETPIXELMAPUIVPROC glad_glGetPixelMapuiv;
  void APIENTRY glad_debug_impl_glGetPixelMapuiv(GLenum arg0, GLuint * arg1) {    
      _pre_call_callback_gl("glGetPixelMapuiv", (void*)glGetPixelMapuiv, 2, arg0, arg1);
       glad_glGetPixelMapuiv(arg0, arg1);
      _post_call_callback_gl("glGetPixelMapuiv", (void*)glGetPixelMapuiv, 2, arg0, arg1);
      
  }
  PFNGLGETPIXELMAPUIVPROC glad_debug_glGetPixelMapuiv = glad_debug_impl_glGetPixelMapuiv;
  PFNGLGETPIXELMAPUSVPROC glad_glGetPixelMapusv;
  void APIENTRY glad_debug_impl_glGetPixelMapusv(GLenum arg0, GLushort * arg1) {    
      _pre_call_callback_gl("glGetPixelMapusv", (void*)glGetPixelMapusv, 2, arg0, arg1);
       glad_glGetPixelMapusv(arg0, arg1);
      _post_call_callback_gl("glGetPixelMapusv", (void*)glGetPixelMapusv, 2, arg0, arg1);
      
  }
  PFNGLGETPIXELMAPUSVPROC glad_debug_glGetPixelMapusv = glad_debug_impl_glGetPixelMapusv;
  PFNGLGETPOINTERVPROC glad_glGetPointerv;
  void APIENTRY glad_debug_impl_glGetPointerv(GLenum arg0, void ** arg1) {    
      _pre_call_callback_gl("glGetPointerv", (void*)glGetPointerv, 2, arg0, arg1);
       glad_glGetPointerv(arg0, arg1);
      _post_call_callback_gl("glGetPointerv", (void*)glGetPointerv, 2, arg0, arg1);
      
  }
  PFNGLGETPOINTERVPROC glad_debug_glGetPointerv = glad_debug_impl_glGetPointerv;
  PFNGLGETPOLYGONSTIPPLEPROC glad_glGetPolygonStipple;
  void APIENTRY glad_debug_impl_glGetPolygonStipple(GLubyte * arg0) {    
      _pre_call_callback_gl("glGetPolygonStipple", (void*)glGetPolygonStipple, 1, arg0);
       glad_glGetPolygonStipple(arg0);
      _post_call_callback_gl("glGetPolygonStipple", (void*)glGetPolygonStipple, 1, arg0);
      
  }
  PFNGLGETPOLYGONSTIPPLEPROC glad_debug_glGetPolygonStipple = glad_debug_impl_glGetPolygonStipple;
  PFNGLGETPROGRAMBINARYPROC glad_glGetProgramBinary;
  void APIENTRY glad_debug_impl_glGetProgramBinary(GLuint arg0, GLsizei arg1, GLsizei * arg2, GLenum * arg3, void * arg4) {    
      _pre_call_callback_gl("glGetProgramBinary", (void*)glGetProgramBinary, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glGetProgramBinary(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glGetProgramBinary", (void*)glGetProgramBinary, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLGETPROGRAMBINARYPROC glad_debug_glGetProgramBinary = glad_debug_impl_glGetProgramBinary;
  PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog;
  void APIENTRY glad_debug_impl_glGetProgramInfoLog(GLuint arg0, GLsizei arg1, GLsizei * arg2, GLchar * arg3) {    
      _pre_call_callback_gl("glGetProgramInfoLog", (void*)glGetProgramInfoLog, 4, arg0, arg1, arg2, arg3);
       glad_glGetProgramInfoLog(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glGetProgramInfoLog", (void*)glGetProgramInfoLog, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLGETPROGRAMINFOLOGPROC glad_debug_glGetProgramInfoLog = glad_debug_impl_glGetProgramInfoLog;
  PFNGLGETPROGRAMINTERFACEIVPROC glad_glGetProgramInterfaceiv;
  void APIENTRY glad_debug_impl_glGetProgramInterfaceiv(GLuint arg0, GLenum arg1, GLenum arg2, GLint * arg3) {    
      _pre_call_callback_gl("glGetProgramInterfaceiv", (void*)glGetProgramInterfaceiv, 4, arg0, arg1, arg2, arg3);
       glad_glGetProgramInterfaceiv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glGetProgramInterfaceiv", (void*)glGetProgramInterfaceiv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLGETPROGRAMINTERFACEIVPROC glad_debug_glGetProgramInterfaceiv = glad_debug_impl_glGetProgramInterfaceiv;
  PFNGLGETPROGRAMPIPELINEINFOLOGPROC glad_glGetProgramPipelineInfoLog;
  void APIENTRY glad_debug_impl_glGetProgramPipelineInfoLog(GLuint arg0, GLsizei arg1, GLsizei * arg2, GLchar * arg3) {    
      _pre_call_callback_gl("glGetProgramPipelineInfoLog", (void*)glGetProgramPipelineInfoLog, 4, arg0, arg1, arg2, arg3);
       glad_glGetProgramPipelineInfoLog(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glGetProgramPipelineInfoLog", (void*)glGetProgramPipelineInfoLog, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLGETPROGRAMPIPELINEINFOLOGPROC glad_debug_glGetProgramPipelineInfoLog = glad_debug_impl_glGetProgramPipelineInfoLog;
  PFNGLGETPROGRAMPIPELINEIVPROC glad_glGetProgramPipelineiv;
  void APIENTRY glad_debug_impl_glGetProgramPipelineiv(GLuint arg0, GLenum arg1, GLint * arg2) {    
      _pre_call_callback_gl("glGetProgramPipelineiv", (void*)glGetProgramPipelineiv, 3, arg0, arg1, arg2);
       glad_glGetProgramPipelineiv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetProgramPipelineiv", (void*)glGetProgramPipelineiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETPROGRAMPIPELINEIVPROC glad_debug_glGetProgramPipelineiv = glad_debug_impl_glGetProgramPipelineiv;
  PFNGLGETPROGRAMRESOURCEINDEXPROC glad_glGetProgramResourceIndex;
  GLuint APIENTRY glad_debug_impl_glGetProgramResourceIndex(GLuint arg0, GLenum arg1, const GLchar * arg2) {    
      GLuint ret;
      _pre_call_callback_gl("glGetProgramResourceIndex", (void*)glGetProgramResourceIndex, 3, arg0, arg1, arg2);
      ret =  glad_glGetProgramResourceIndex(arg0, arg1, arg2);
      _post_call_callback_gl("glGetProgramResourceIndex", (void*)glGetProgramResourceIndex, 3, arg0, arg1, arg2);
      return ret;
  }
  PFNGLGETPROGRAMRESOURCEINDEXPROC glad_debug_glGetProgramResourceIndex = glad_debug_impl_glGetProgramResourceIndex;
  PFNGLGETPROGRAMRESOURCELOCATIONPROC glad_glGetProgramResourceLocation;
  GLint APIENTRY glad_debug_impl_glGetProgramResourceLocation(GLuint arg0, GLenum arg1, const GLchar * arg2) {    
      GLint ret;
      _pre_call_callback_gl("glGetProgramResourceLocation", (void*)glGetProgramResourceLocation, 3, arg0, arg1, arg2);
      ret =  glad_glGetProgramResourceLocation(arg0, arg1, arg2);
      _post_call_callback_gl("glGetProgramResourceLocation", (void*)glGetProgramResourceLocation, 3, arg0, arg1, arg2);
      return ret;
  }
  PFNGLGETPROGRAMRESOURCELOCATIONPROC glad_debug_glGetProgramResourceLocation = glad_debug_impl_glGetProgramResourceLocation;
  PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC glad_glGetProgramResourceLocationIndex;
  GLint APIENTRY glad_debug_impl_glGetProgramResourceLocationIndex(GLuint arg0, GLenum arg1, const GLchar * arg2) {    
      GLint ret;
      _pre_call_callback_gl("glGetProgramResourceLocationIndex", (void*)glGetProgramResourceLocationIndex, 3, arg0, arg1, arg2);
      ret =  glad_glGetProgramResourceLocationIndex(arg0, arg1, arg2);
      _post_call_callback_gl("glGetProgramResourceLocationIndex", (void*)glGetProgramResourceLocationIndex, 3, arg0, arg1, arg2);
      return ret;
  }
  PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC glad_debug_glGetProgramResourceLocationIndex = glad_debug_impl_glGetProgramResourceLocationIndex;
  PFNGLGETPROGRAMRESOURCENAMEPROC glad_glGetProgramResourceName;
  void APIENTRY glad_debug_impl_glGetProgramResourceName(GLuint arg0, GLenum arg1, GLuint arg2, GLsizei arg3, GLsizei * arg4, GLchar * arg5) {    
      _pre_call_callback_gl("glGetProgramResourceName", (void*)glGetProgramResourceName, 6, arg0, arg1, arg2, arg3, arg4, arg5);
       glad_glGetProgramResourceName(arg0, arg1, arg2, arg3, arg4, arg5);
      _post_call_callback_gl("glGetProgramResourceName", (void*)glGetProgramResourceName, 6, arg0, arg1, arg2, arg3, arg4, arg5);
      
  }
  PFNGLGETPROGRAMRESOURCENAMEPROC glad_debug_glGetProgramResourceName = glad_debug_impl_glGetProgramResourceName;
  PFNGLGETPROGRAMRESOURCEIVPROC glad_glGetProgramResourceiv;
  void APIENTRY glad_debug_impl_glGetProgramResourceiv(GLuint arg0, GLenum arg1, GLuint arg2, GLsizei arg3, const GLenum * arg4, GLsizei arg5, GLsizei * arg6, GLint * arg7) {    
      _pre_call_callback_gl("glGetProgramResourceiv", (void*)glGetProgramResourceiv, 8, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
       glad_glGetProgramResourceiv(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
      _post_call_callback_gl("glGetProgramResourceiv", (void*)glGetProgramResourceiv, 8, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
      
  }
  PFNGLGETPROGRAMRESOURCEIVPROC glad_debug_glGetProgramResourceiv = glad_debug_impl_glGetProgramResourceiv;
  PFNGLGETPROGRAMSTAGEIVPROC glad_glGetProgramStageiv;
  void APIENTRY glad_debug_impl_glGetProgramStageiv(GLuint arg0, GLenum arg1, GLenum arg2, GLint * arg3) {    
      _pre_call_callback_gl("glGetProgramStageiv", (void*)glGetProgramStageiv, 4, arg0, arg1, arg2, arg3);
       glad_glGetProgramStageiv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glGetProgramStageiv", (void*)glGetProgramStageiv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLGETPROGRAMSTAGEIVPROC glad_debug_glGetProgramStageiv = glad_debug_impl_glGetProgramStageiv;
  PFNGLGETPROGRAMIVPROC glad_glGetProgramiv;
  void APIENTRY glad_debug_impl_glGetProgramiv(GLuint arg0, GLenum arg1, GLint * arg2) {    
      _pre_call_callback_gl("glGetProgramiv", (void*)glGetProgramiv, 3, arg0, arg1, arg2);
       glad_glGetProgramiv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetProgramiv", (void*)glGetProgramiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETPROGRAMIVPROC glad_debug_glGetProgramiv = glad_debug_impl_glGetProgramiv;
  PFNGLGETQUERYINDEXEDIVPROC glad_glGetQueryIndexediv;
  void APIENTRY glad_debug_impl_glGetQueryIndexediv(GLenum arg0, GLuint arg1, GLenum arg2, GLint * arg3) {    
      _pre_call_callback_gl("glGetQueryIndexediv", (void*)glGetQueryIndexediv, 4, arg0, arg1, arg2, arg3);
       glad_glGetQueryIndexediv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glGetQueryIndexediv", (void*)glGetQueryIndexediv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLGETQUERYINDEXEDIVPROC glad_debug_glGetQueryIndexediv = glad_debug_impl_glGetQueryIndexediv;
  PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v;
  void APIENTRY glad_debug_impl_glGetQueryObjecti64v(GLuint arg0, GLenum arg1, GLint64 * arg2) {    
      _pre_call_callback_gl("glGetQueryObjecti64v", (void*)glGetQueryObjecti64v, 3, arg0, arg1, arg2);
       glad_glGetQueryObjecti64v(arg0, arg1, arg2);
      _post_call_callback_gl("glGetQueryObjecti64v", (void*)glGetQueryObjecti64v, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETQUERYOBJECTI64VPROC glad_debug_glGetQueryObjecti64v = glad_debug_impl_glGetQueryObjecti64v;
  PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv;
  void APIENTRY glad_debug_impl_glGetQueryObjectiv(GLuint arg0, GLenum arg1, GLint * arg2) {    
      _pre_call_callback_gl("glGetQueryObjectiv", (void*)glGetQueryObjectiv, 3, arg0, arg1, arg2);
       glad_glGetQueryObjectiv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetQueryObjectiv", (void*)glGetQueryObjectiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETQUERYOBJECTIVPROC glad_debug_glGetQueryObjectiv = glad_debug_impl_glGetQueryObjectiv;
  PFNGLGETQUERYOBJECTUI64VPROC glad_glGetQueryObjectui64v;
  void APIENTRY glad_debug_impl_glGetQueryObjectui64v(GLuint arg0, GLenum arg1, GLuint64 * arg2) {    
      _pre_call_callback_gl("glGetQueryObjectui64v", (void*)glGetQueryObjectui64v, 3, arg0, arg1, arg2);
       glad_glGetQueryObjectui64v(arg0, arg1, arg2);
      _post_call_callback_gl("glGetQueryObjectui64v", (void*)glGetQueryObjectui64v, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETQUERYOBJECTUI64VPROC glad_debug_glGetQueryObjectui64v = glad_debug_impl_glGetQueryObjectui64v;
  PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv;
  void APIENTRY glad_debug_impl_glGetQueryObjectuiv(GLuint arg0, GLenum arg1, GLuint * arg2) {    
      _pre_call_callback_gl("glGetQueryObjectuiv", (void*)glGetQueryObjectuiv, 3, arg0, arg1, arg2);
       glad_glGetQueryObjectuiv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetQueryObjectuiv", (void*)glGetQueryObjectuiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETQUERYOBJECTUIVPROC glad_debug_glGetQueryObjectuiv = glad_debug_impl_glGetQueryObjectuiv;
  PFNGLGETQUERYIVPROC glad_glGetQueryiv;
  void APIENTRY glad_debug_impl_glGetQueryiv(GLenum arg0, GLenum arg1, GLint * arg2) {    
      _pre_call_callback_gl("glGetQueryiv", (void*)glGetQueryiv, 3, arg0, arg1, arg2);
       glad_glGetQueryiv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetQueryiv", (void*)glGetQueryiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETQUERYIVPROC glad_debug_glGetQueryiv = glad_debug_impl_glGetQueryiv;
  PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv;
  void APIENTRY glad_debug_impl_glGetRenderbufferParameteriv(GLenum arg0, GLenum arg1, GLint * arg2) {    
      _pre_call_callback_gl("glGetRenderbufferParameteriv", (void*)glGetRenderbufferParameteriv, 3, arg0, arg1, arg2);
       glad_glGetRenderbufferParameteriv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetRenderbufferParameteriv", (void*)glGetRenderbufferParameteriv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_debug_glGetRenderbufferParameteriv = glad_debug_impl_glGetRenderbufferParameteriv;
  PFNGLGETSAMPLERPARAMETERIIVPROC glad_glGetSamplerParameterIiv;
  void APIENTRY glad_debug_impl_glGetSamplerParameterIiv(GLuint arg0, GLenum arg1, GLint * arg2) {    
      _pre_call_callback_gl("glGetSamplerParameterIiv", (void*)glGetSamplerParameterIiv, 3, arg0, arg1, arg2);
       glad_glGetSamplerParameterIiv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetSamplerParameterIiv", (void*)glGetSamplerParameterIiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETSAMPLERPARAMETERIIVPROC glad_debug_glGetSamplerParameterIiv = glad_debug_impl_glGetSamplerParameterIiv;
  PFNGLGETSAMPLERPARAMETERIUIVPROC glad_glGetSamplerParameterIuiv;
  void APIENTRY glad_debug_impl_glGetSamplerParameterIuiv(GLuint arg0, GLenum arg1, GLuint * arg2) {    
      _pre_call_callback_gl("glGetSamplerParameterIuiv", (void*)glGetSamplerParameterIuiv, 3, arg0, arg1, arg2);
       glad_glGetSamplerParameterIuiv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetSamplerParameterIuiv", (void*)glGetSamplerParameterIuiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETSAMPLERPARAMETERIUIVPROC glad_debug_glGetSamplerParameterIuiv = glad_debug_impl_glGetSamplerParameterIuiv;
  PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv;
  void APIENTRY glad_debug_impl_glGetSamplerParameterfv(GLuint arg0, GLenum arg1, GLfloat * arg2) {    
      _pre_call_callback_gl("glGetSamplerParameterfv", (void*)glGetSamplerParameterfv, 3, arg0, arg1, arg2);
       glad_glGetSamplerParameterfv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetSamplerParameterfv", (void*)glGetSamplerParameterfv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETSAMPLERPARAMETERFVPROC glad_debug_glGetSamplerParameterfv = glad_debug_impl_glGetSamplerParameterfv;
  PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv;
  void APIENTRY glad_debug_impl_glGetSamplerParameteriv(GLuint arg0, GLenum arg1, GLint * arg2) {    
      _pre_call_callback_gl("glGetSamplerParameteriv", (void*)glGetSamplerParameteriv, 3, arg0, arg1, arg2);
       glad_glGetSamplerParameteriv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetSamplerParameteriv", (void*)glGetSamplerParameteriv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETSAMPLERPARAMETERIVPROC glad_debug_glGetSamplerParameteriv = glad_debug_impl_glGetSamplerParameteriv;
  PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog;
  void APIENTRY glad_debug_impl_glGetShaderInfoLog(GLuint arg0, GLsizei arg1, GLsizei * arg2, GLchar * arg3) {    
      _pre_call_callback_gl("glGetShaderInfoLog", (void*)glGetShaderInfoLog, 4, arg0, arg1, arg2, arg3);
       glad_glGetShaderInfoLog(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glGetShaderInfoLog", (void*)glGetShaderInfoLog, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLGETSHADERINFOLOGPROC glad_debug_glGetShaderInfoLog = glad_debug_impl_glGetShaderInfoLog;
  PFNGLGETSHADERPRECISIONFORMATPROC glad_glGetShaderPrecisionFormat;
  void APIENTRY glad_debug_impl_glGetShaderPrecisionFormat(GLenum arg0, GLenum arg1, GLint * arg2, GLint * arg3) {    
      _pre_call_callback_gl("glGetShaderPrecisionFormat", (void*)glGetShaderPrecisionFormat, 4, arg0, arg1, arg2, arg3);
       glad_glGetShaderPrecisionFormat(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glGetShaderPrecisionFormat", (void*)glGetShaderPrecisionFormat, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLGETSHADERPRECISIONFORMATPROC glad_debug_glGetShaderPrecisionFormat = glad_debug_impl_glGetShaderPrecisionFormat;
  PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource;
  void APIENTRY glad_debug_impl_glGetShaderSource(GLuint arg0, GLsizei arg1, GLsizei * arg2, GLchar * arg3) {    
      _pre_call_callback_gl("glGetShaderSource", (void*)glGetShaderSource, 4, arg0, arg1, arg2, arg3);
       glad_glGetShaderSource(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glGetShaderSource", (void*)glGetShaderSource, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLGETSHADERSOURCEPROC glad_debug_glGetShaderSource = glad_debug_impl_glGetShaderSource;
  PFNGLGETSHADERIVPROC glad_glGetShaderiv;
  void APIENTRY glad_debug_impl_glGetShaderiv(GLuint arg0, GLenum arg1, GLint * arg2) {    
      _pre_call_callback_gl("glGetShaderiv", (void*)glGetShaderiv, 3, arg0, arg1, arg2);
       glad_glGetShaderiv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetShaderiv", (void*)glGetShaderiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETSHADERIVPROC glad_debug_glGetShaderiv = glad_debug_impl_glGetShaderiv;
  PFNGLGETSTRINGPROC glad_glGetString;
  const GLubyte * APIENTRY glad_debug_impl_glGetString(GLenum arg0) {    
      const GLubyte * ret;
      _pre_call_callback_gl("glGetString", (void*)glGetString, 1, arg0);
      ret =  glad_glGetString(arg0);
      _post_call_callback_gl("glGetString", (void*)glGetString, 1, arg0);
      return ret;
  }
  PFNGLGETSTRINGPROC glad_debug_glGetString = glad_debug_impl_glGetString;
  PFNGLGETSTRINGIPROC glad_glGetStringi;
  const GLubyte * APIENTRY glad_debug_impl_glGetStringi(GLenum arg0, GLuint arg1) {    
      const GLubyte * ret;
      _pre_call_callback_gl("glGetStringi", (void*)glGetStringi, 2, arg0, arg1);
      ret =  glad_glGetStringi(arg0, arg1);
      _post_call_callback_gl("glGetStringi", (void*)glGetStringi, 2, arg0, arg1);
      return ret;
  }
  PFNGLGETSTRINGIPROC glad_debug_glGetStringi = glad_debug_impl_glGetStringi;
  PFNGLGETSUBROUTINEINDEXPROC glad_glGetSubroutineIndex;
  GLuint APIENTRY glad_debug_impl_glGetSubroutineIndex(GLuint arg0, GLenum arg1, const GLchar * arg2) {    
      GLuint ret;
      _pre_call_callback_gl("glGetSubroutineIndex", (void*)glGetSubroutineIndex, 3, arg0, arg1, arg2);
      ret =  glad_glGetSubroutineIndex(arg0, arg1, arg2);
      _post_call_callback_gl("glGetSubroutineIndex", (void*)glGetSubroutineIndex, 3, arg0, arg1, arg2);
      return ret;
  }
  PFNGLGETSUBROUTINEINDEXPROC glad_debug_glGetSubroutineIndex = glad_debug_impl_glGetSubroutineIndex;
  PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC glad_glGetSubroutineUniformLocation;
  GLint APIENTRY glad_debug_impl_glGetSubroutineUniformLocation(GLuint arg0, GLenum arg1, const GLchar * arg2) {    
      GLint ret;
      _pre_call_callback_gl("glGetSubroutineUniformLocation", (void*)glGetSubroutineUniformLocation, 3, arg0, arg1, arg2);
      ret =  glad_glGetSubroutineUniformLocation(arg0, arg1, arg2);
      _post_call_callback_gl("glGetSubroutineUniformLocation", (void*)glGetSubroutineUniformLocation, 3, arg0, arg1, arg2);
      return ret;
  }
  PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC glad_debug_glGetSubroutineUniformLocation = glad_debug_impl_glGetSubroutineUniformLocation;
  PFNGLGETSYNCIVPROC glad_glGetSynciv;
  void APIENTRY glad_debug_impl_glGetSynciv(GLsync arg0, GLenum arg1, GLsizei arg2, GLsizei * arg3, GLint * arg4) {    
      _pre_call_callback_gl("glGetSynciv", (void*)glGetSynciv, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glGetSynciv(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glGetSynciv", (void*)glGetSynciv, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLGETSYNCIVPROC glad_debug_glGetSynciv = glad_debug_impl_glGetSynciv;
  PFNGLGETTEXENVFVPROC glad_glGetTexEnvfv;
  void APIENTRY glad_debug_impl_glGetTexEnvfv(GLenum arg0, GLenum arg1, GLfloat * arg2) {    
      _pre_call_callback_gl("glGetTexEnvfv", (void*)glGetTexEnvfv, 3, arg0, arg1, arg2);
       glad_glGetTexEnvfv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetTexEnvfv", (void*)glGetTexEnvfv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETTEXENVFVPROC glad_debug_glGetTexEnvfv = glad_debug_impl_glGetTexEnvfv;
  PFNGLGETTEXENVIVPROC glad_glGetTexEnviv;
  void APIENTRY glad_debug_impl_glGetTexEnviv(GLenum arg0, GLenum arg1, GLint * arg2) {    
      _pre_call_callback_gl("glGetTexEnviv", (void*)glGetTexEnviv, 3, arg0, arg1, arg2);
       glad_glGetTexEnviv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetTexEnviv", (void*)glGetTexEnviv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETTEXENVIVPROC glad_debug_glGetTexEnviv = glad_debug_impl_glGetTexEnviv;
  PFNGLGETTEXGENDVPROC glad_glGetTexGendv;
  void APIENTRY glad_debug_impl_glGetTexGendv(GLenum arg0, GLenum arg1, GLdouble * arg2) {    
      _pre_call_callback_gl("glGetTexGendv", (void*)glGetTexGendv, 3, arg0, arg1, arg2);
       glad_glGetTexGendv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetTexGendv", (void*)glGetTexGendv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETTEXGENDVPROC glad_debug_glGetTexGendv = glad_debug_impl_glGetTexGendv;
  PFNGLGETTEXGENFVPROC glad_glGetTexGenfv;
  void APIENTRY glad_debug_impl_glGetTexGenfv(GLenum arg0, GLenum arg1, GLfloat * arg2) {    
      _pre_call_callback_gl("glGetTexGenfv", (void*)glGetTexGenfv, 3, arg0, arg1, arg2);
       glad_glGetTexGenfv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetTexGenfv", (void*)glGetTexGenfv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETTEXGENFVPROC glad_debug_glGetTexGenfv = glad_debug_impl_glGetTexGenfv;
  PFNGLGETTEXGENIVPROC glad_glGetTexGeniv;
  void APIENTRY glad_debug_impl_glGetTexGeniv(GLenum arg0, GLenum arg1, GLint * arg2) {    
      _pre_call_callback_gl("glGetTexGeniv", (void*)glGetTexGeniv, 3, arg0, arg1, arg2);
       glad_glGetTexGeniv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetTexGeniv", (void*)glGetTexGeniv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETTEXGENIVPROC glad_debug_glGetTexGeniv = glad_debug_impl_glGetTexGeniv;
  PFNGLGETTEXIMAGEPROC glad_glGetTexImage;
  void APIENTRY glad_debug_impl_glGetTexImage(GLenum arg0, GLint arg1, GLenum arg2, GLenum arg3, void * arg4) {    
      _pre_call_callback_gl("glGetTexImage", (void*)glGetTexImage, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glGetTexImage(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glGetTexImage", (void*)glGetTexImage, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLGETTEXIMAGEPROC glad_debug_glGetTexImage = glad_debug_impl_glGetTexImage;
  PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv;
  void APIENTRY glad_debug_impl_glGetTexLevelParameterfv(GLenum arg0, GLint arg1, GLenum arg2, GLfloat * arg3) {    
      _pre_call_callback_gl("glGetTexLevelParameterfv", (void*)glGetTexLevelParameterfv, 4, arg0, arg1, arg2, arg3);
       glad_glGetTexLevelParameterfv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glGetTexLevelParameterfv", (void*)glGetTexLevelParameterfv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLGETTEXLEVELPARAMETERFVPROC glad_debug_glGetTexLevelParameterfv = glad_debug_impl_glGetTexLevelParameterfv;
  PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv;
  void APIENTRY glad_debug_impl_glGetTexLevelParameteriv(GLenum arg0, GLint arg1, GLenum arg2, GLint * arg3) {    
      _pre_call_callback_gl("glGetTexLevelParameteriv", (void*)glGetTexLevelParameteriv, 4, arg0, arg1, arg2, arg3);
       glad_glGetTexLevelParameteriv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glGetTexLevelParameteriv", (void*)glGetTexLevelParameteriv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLGETTEXLEVELPARAMETERIVPROC glad_debug_glGetTexLevelParameteriv = glad_debug_impl_glGetTexLevelParameteriv;
  PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv;
  void APIENTRY glad_debug_impl_glGetTexParameterIiv(GLenum arg0, GLenum arg1, GLint * arg2) {    
      _pre_call_callback_gl("glGetTexParameterIiv", (void*)glGetTexParameterIiv, 3, arg0, arg1, arg2);
       glad_glGetTexParameterIiv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetTexParameterIiv", (void*)glGetTexParameterIiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETTEXPARAMETERIIVPROC glad_debug_glGetTexParameterIiv = glad_debug_impl_glGetTexParameterIiv;
  PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv;
  void APIENTRY glad_debug_impl_glGetTexParameterIuiv(GLenum arg0, GLenum arg1, GLuint * arg2) {    
      _pre_call_callback_gl("glGetTexParameterIuiv", (void*)glGetTexParameterIuiv, 3, arg0, arg1, arg2);
       glad_glGetTexParameterIuiv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetTexParameterIuiv", (void*)glGetTexParameterIuiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETTEXPARAMETERIUIVPROC glad_debug_glGetTexParameterIuiv = glad_debug_impl_glGetTexParameterIuiv;
  PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv;
  void APIENTRY glad_debug_impl_glGetTexParameterfv(GLenum arg0, GLenum arg1, GLfloat * arg2) {    
      _pre_call_callback_gl("glGetTexParameterfv", (void*)glGetTexParameterfv, 3, arg0, arg1, arg2);
       glad_glGetTexParameterfv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetTexParameterfv", (void*)glGetTexParameterfv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETTEXPARAMETERFVPROC glad_debug_glGetTexParameterfv = glad_debug_impl_glGetTexParameterfv;
  PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv;
  void APIENTRY glad_debug_impl_glGetTexParameteriv(GLenum arg0, GLenum arg1, GLint * arg2) {    
      _pre_call_callback_gl("glGetTexParameteriv", (void*)glGetTexParameteriv, 3, arg0, arg1, arg2);
       glad_glGetTexParameteriv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetTexParameteriv", (void*)glGetTexParameteriv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETTEXPARAMETERIVPROC glad_debug_glGetTexParameteriv = glad_debug_impl_glGetTexParameteriv;
  PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying;
  void APIENTRY glad_debug_impl_glGetTransformFeedbackVarying(GLuint arg0, GLuint arg1, GLsizei arg2, GLsizei * arg3, GLsizei * arg4, GLenum * arg5, GLchar * arg6) {    
      _pre_call_callback_gl("glGetTransformFeedbackVarying", (void*)glGetTransformFeedbackVarying, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
       glad_glGetTransformFeedbackVarying(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      _post_call_callback_gl("glGetTransformFeedbackVarying", (void*)glGetTransformFeedbackVarying, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      
  }
  PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_debug_glGetTransformFeedbackVarying = glad_debug_impl_glGetTransformFeedbackVarying;
  PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex;
  GLuint APIENTRY glad_debug_impl_glGetUniformBlockIndex(GLuint arg0, const GLchar * arg1) {    
      GLuint ret;
      _pre_call_callback_gl("glGetUniformBlockIndex", (void*)glGetUniformBlockIndex, 2, arg0, arg1);
      ret =  glad_glGetUniformBlockIndex(arg0, arg1);
      _post_call_callback_gl("glGetUniformBlockIndex", (void*)glGetUniformBlockIndex, 2, arg0, arg1);
      return ret;
  }
  PFNGLGETUNIFORMBLOCKINDEXPROC glad_debug_glGetUniformBlockIndex = glad_debug_impl_glGetUniformBlockIndex;
  PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices;
  void APIENTRY glad_debug_impl_glGetUniformIndices(GLuint arg0, GLsizei arg1, const GLchar *const* arg2, GLuint * arg3) {    
      _pre_call_callback_gl("glGetUniformIndices", (void*)glGetUniformIndices, 4, arg0, arg1, arg2, arg3);
       glad_glGetUniformIndices(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glGetUniformIndices", (void*)glGetUniformIndices, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLGETUNIFORMINDICESPROC glad_debug_glGetUniformIndices = glad_debug_impl_glGetUniformIndices;
  PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation;
  GLint APIENTRY glad_debug_impl_glGetUniformLocation(GLuint arg0, const GLchar * arg1) {    
      GLint ret;
      _pre_call_callback_gl("glGetUniformLocation", (void*)glGetUniformLocation, 2, arg0, arg1);
      ret =  glad_glGetUniformLocation(arg0, arg1);
      _post_call_callback_gl("glGetUniformLocation", (void*)glGetUniformLocation, 2, arg0, arg1);
      return ret;
  }
  PFNGLGETUNIFORMLOCATIONPROC glad_debug_glGetUniformLocation = glad_debug_impl_glGetUniformLocation;
  PFNGLGETUNIFORMSUBROUTINEUIVPROC glad_glGetUniformSubroutineuiv;
  void APIENTRY glad_debug_impl_glGetUniformSubroutineuiv(GLenum arg0, GLint arg1, GLuint * arg2) {    
      _pre_call_callback_gl("glGetUniformSubroutineuiv", (void*)glGetUniformSubroutineuiv, 3, arg0, arg1, arg2);
       glad_glGetUniformSubroutineuiv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetUniformSubroutineuiv", (void*)glGetUniformSubroutineuiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETUNIFORMSUBROUTINEUIVPROC glad_debug_glGetUniformSubroutineuiv = glad_debug_impl_glGetUniformSubroutineuiv;
  PFNGLGETUNIFORMDVPROC glad_glGetUniformdv;
  void APIENTRY glad_debug_impl_glGetUniformdv(GLuint arg0, GLint arg1, GLdouble * arg2) {    
      _pre_call_callback_gl("glGetUniformdv", (void*)glGetUniformdv, 3, arg0, arg1, arg2);
       glad_glGetUniformdv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetUniformdv", (void*)glGetUniformdv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETUNIFORMDVPROC glad_debug_glGetUniformdv = glad_debug_impl_glGetUniformdv;
  PFNGLGETUNIFORMFVPROC glad_glGetUniformfv;
  void APIENTRY glad_debug_impl_glGetUniformfv(GLuint arg0, GLint arg1, GLfloat * arg2) {    
      _pre_call_callback_gl("glGetUniformfv", (void*)glGetUniformfv, 3, arg0, arg1, arg2);
       glad_glGetUniformfv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetUniformfv", (void*)glGetUniformfv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETUNIFORMFVPROC glad_debug_glGetUniformfv = glad_debug_impl_glGetUniformfv;
  PFNGLGETUNIFORMIVPROC glad_glGetUniformiv;
  void APIENTRY glad_debug_impl_glGetUniformiv(GLuint arg0, GLint arg1, GLint * arg2) {    
      _pre_call_callback_gl("glGetUniformiv", (void*)glGetUniformiv, 3, arg0, arg1, arg2);
       glad_glGetUniformiv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetUniformiv", (void*)glGetUniformiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETUNIFORMIVPROC glad_debug_glGetUniformiv = glad_debug_impl_glGetUniformiv;
  PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv;
  void APIENTRY glad_debug_impl_glGetUniformuiv(GLuint arg0, GLint arg1, GLuint * arg2) {    
      _pre_call_callback_gl("glGetUniformuiv", (void*)glGetUniformuiv, 3, arg0, arg1, arg2);
       glad_glGetUniformuiv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetUniformuiv", (void*)glGetUniformuiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETUNIFORMUIVPROC glad_debug_glGetUniformuiv = glad_debug_impl_glGetUniformuiv;
  PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv;
  void APIENTRY glad_debug_impl_glGetVertexAttribIiv(GLuint arg0, GLenum arg1, GLint * arg2) {    
      _pre_call_callback_gl("glGetVertexAttribIiv", (void*)glGetVertexAttribIiv, 3, arg0, arg1, arg2);
       glad_glGetVertexAttribIiv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetVertexAttribIiv", (void*)glGetVertexAttribIiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETVERTEXATTRIBIIVPROC glad_debug_glGetVertexAttribIiv = glad_debug_impl_glGetVertexAttribIiv;
  PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv;
  void APIENTRY glad_debug_impl_glGetVertexAttribIuiv(GLuint arg0, GLenum arg1, GLuint * arg2) {    
      _pre_call_callback_gl("glGetVertexAttribIuiv", (void*)glGetVertexAttribIuiv, 3, arg0, arg1, arg2);
       glad_glGetVertexAttribIuiv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetVertexAttribIuiv", (void*)glGetVertexAttribIuiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETVERTEXATTRIBIUIVPROC glad_debug_glGetVertexAttribIuiv = glad_debug_impl_glGetVertexAttribIuiv;
  PFNGLGETVERTEXATTRIBLDVPROC glad_glGetVertexAttribLdv;
  void APIENTRY glad_debug_impl_glGetVertexAttribLdv(GLuint arg0, GLenum arg1, GLdouble * arg2) {    
      _pre_call_callback_gl("glGetVertexAttribLdv", (void*)glGetVertexAttribLdv, 3, arg0, arg1, arg2);
       glad_glGetVertexAttribLdv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetVertexAttribLdv", (void*)glGetVertexAttribLdv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETVERTEXATTRIBLDVPROC glad_debug_glGetVertexAttribLdv = glad_debug_impl_glGetVertexAttribLdv;
  PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv;
  void APIENTRY glad_debug_impl_glGetVertexAttribPointerv(GLuint arg0, GLenum arg1, void ** arg2) {    
      _pre_call_callback_gl("glGetVertexAttribPointerv", (void*)glGetVertexAttribPointerv, 3, arg0, arg1, arg2);
       glad_glGetVertexAttribPointerv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetVertexAttribPointerv", (void*)glGetVertexAttribPointerv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETVERTEXATTRIBPOINTERVPROC glad_debug_glGetVertexAttribPointerv = glad_debug_impl_glGetVertexAttribPointerv;
  PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv;
  void APIENTRY glad_debug_impl_glGetVertexAttribdv(GLuint arg0, GLenum arg1, GLdouble * arg2) {    
      _pre_call_callback_gl("glGetVertexAttribdv", (void*)glGetVertexAttribdv, 3, arg0, arg1, arg2);
       glad_glGetVertexAttribdv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetVertexAttribdv", (void*)glGetVertexAttribdv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETVERTEXATTRIBDVPROC glad_debug_glGetVertexAttribdv = glad_debug_impl_glGetVertexAttribdv;
  PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv;
  void APIENTRY glad_debug_impl_glGetVertexAttribfv(GLuint arg0, GLenum arg1, GLfloat * arg2) {    
      _pre_call_callback_gl("glGetVertexAttribfv", (void*)glGetVertexAttribfv, 3, arg0, arg1, arg2);
       glad_glGetVertexAttribfv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetVertexAttribfv", (void*)glGetVertexAttribfv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETVERTEXATTRIBFVPROC glad_debug_glGetVertexAttribfv = glad_debug_impl_glGetVertexAttribfv;
  PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv;
  void APIENTRY glad_debug_impl_glGetVertexAttribiv(GLuint arg0, GLenum arg1, GLint * arg2) {    
      _pre_call_callback_gl("glGetVertexAttribiv", (void*)glGetVertexAttribiv, 3, arg0, arg1, arg2);
       glad_glGetVertexAttribiv(arg0, arg1, arg2);
      _post_call_callback_gl("glGetVertexAttribiv", (void*)glGetVertexAttribiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLGETVERTEXATTRIBIVPROC glad_debug_glGetVertexAttribiv = glad_debug_impl_glGetVertexAttribiv;
  PFNGLHINTPROC glad_glHint;
  void APIENTRY glad_debug_impl_glHint(GLenum arg0, GLenum arg1) {    
      _pre_call_callback_gl("glHint", (void*)glHint, 2, arg0, arg1);
       glad_glHint(arg0, arg1);
      _post_call_callback_gl("glHint", (void*)glHint, 2, arg0, arg1);
      
  }
  PFNGLHINTPROC glad_debug_glHint = glad_debug_impl_glHint;
  PFNGLINDEXMASKPROC glad_glIndexMask;
  void APIENTRY glad_debug_impl_glIndexMask(GLuint arg0) {    
      _pre_call_callback_gl("glIndexMask", (void*)glIndexMask, 1, arg0);
       glad_glIndexMask(arg0);
      _post_call_callback_gl("glIndexMask", (void*)glIndexMask, 1, arg0);
      
  }
  PFNGLINDEXMASKPROC glad_debug_glIndexMask = glad_debug_impl_glIndexMask;
  PFNGLINDEXPOINTERPROC glad_glIndexPointer;
  void APIENTRY glad_debug_impl_glIndexPointer(GLenum arg0, GLsizei arg1, const void * arg2) {    
      _pre_call_callback_gl("glIndexPointer", (void*)glIndexPointer, 3, arg0, arg1, arg2);
       glad_glIndexPointer(arg0, arg1, arg2);
      _post_call_callback_gl("glIndexPointer", (void*)glIndexPointer, 3, arg0, arg1, arg2);
      
  }
  PFNGLINDEXPOINTERPROC glad_debug_glIndexPointer = glad_debug_impl_glIndexPointer;
  PFNGLINDEXDPROC glad_glIndexd;
  void APIENTRY glad_debug_impl_glIndexd(GLdouble arg0) {    
      _pre_call_callback_gl("glIndexd", (void*)glIndexd, 1, arg0);
       glad_glIndexd(arg0);
      _post_call_callback_gl("glIndexd", (void*)glIndexd, 1, arg0);
      
  }
  PFNGLINDEXDPROC glad_debug_glIndexd = glad_debug_impl_glIndexd;
  PFNGLINDEXDVPROC glad_glIndexdv;
  void APIENTRY glad_debug_impl_glIndexdv(const GLdouble * arg0) {    
      _pre_call_callback_gl("glIndexdv", (void*)glIndexdv, 1, arg0);
       glad_glIndexdv(arg0);
      _post_call_callback_gl("glIndexdv", (void*)glIndexdv, 1, arg0);
      
  }
  PFNGLINDEXDVPROC glad_debug_glIndexdv = glad_debug_impl_glIndexdv;
  PFNGLINDEXFPROC glad_glIndexf;
  void APIENTRY glad_debug_impl_glIndexf(GLfloat arg0) {    
      _pre_call_callback_gl("glIndexf", (void*)glIndexf, 1, arg0);
       glad_glIndexf(arg0);
      _post_call_callback_gl("glIndexf", (void*)glIndexf, 1, arg0);
      
  }
  PFNGLINDEXFPROC glad_debug_glIndexf = glad_debug_impl_glIndexf;
  PFNGLINDEXFVPROC glad_glIndexfv;
  void APIENTRY glad_debug_impl_glIndexfv(const GLfloat * arg0) {    
      _pre_call_callback_gl("glIndexfv", (void*)glIndexfv, 1, arg0);
       glad_glIndexfv(arg0);
      _post_call_callback_gl("glIndexfv", (void*)glIndexfv, 1, arg0);
      
  }
  PFNGLINDEXFVPROC glad_debug_glIndexfv = glad_debug_impl_glIndexfv;
  PFNGLINDEXIPROC glad_glIndexi;
  void APIENTRY glad_debug_impl_glIndexi(GLint arg0) {    
      _pre_call_callback_gl("glIndexi", (void*)glIndexi, 1, arg0);
       glad_glIndexi(arg0);
      _post_call_callback_gl("glIndexi", (void*)glIndexi, 1, arg0);
      
  }
  PFNGLINDEXIPROC glad_debug_glIndexi = glad_debug_impl_glIndexi;
  PFNGLINDEXIVPROC glad_glIndexiv;
  void APIENTRY glad_debug_impl_glIndexiv(const GLint * arg0) {    
      _pre_call_callback_gl("glIndexiv", (void*)glIndexiv, 1, arg0);
       glad_glIndexiv(arg0);
      _post_call_callback_gl("glIndexiv", (void*)glIndexiv, 1, arg0);
      
  }
  PFNGLINDEXIVPROC glad_debug_glIndexiv = glad_debug_impl_glIndexiv;
  PFNGLINDEXSPROC glad_glIndexs;
  void APIENTRY glad_debug_impl_glIndexs(GLshort arg0) {    
      _pre_call_callback_gl("glIndexs", (void*)glIndexs, 1, arg0);
       glad_glIndexs(arg0);
      _post_call_callback_gl("glIndexs", (void*)glIndexs, 1, arg0);
      
  }
  PFNGLINDEXSPROC glad_debug_glIndexs = glad_debug_impl_glIndexs;
  PFNGLINDEXSVPROC glad_glIndexsv;
  void APIENTRY glad_debug_impl_glIndexsv(const GLshort * arg0) {    
      _pre_call_callback_gl("glIndexsv", (void*)glIndexsv, 1, arg0);
       glad_glIndexsv(arg0);
      _post_call_callback_gl("glIndexsv", (void*)glIndexsv, 1, arg0);
      
  }
  PFNGLINDEXSVPROC glad_debug_glIndexsv = glad_debug_impl_glIndexsv;
  PFNGLINDEXUBPROC glad_glIndexub;
  void APIENTRY glad_debug_impl_glIndexub(GLubyte arg0) {    
      _pre_call_callback_gl("glIndexub", (void*)glIndexub, 1, arg0);
       glad_glIndexub(arg0);
      _post_call_callback_gl("glIndexub", (void*)glIndexub, 1, arg0);
      
  }
  PFNGLINDEXUBPROC glad_debug_glIndexub = glad_debug_impl_glIndexub;
  PFNGLINDEXUBVPROC glad_glIndexubv;
  void APIENTRY glad_debug_impl_glIndexubv(const GLubyte * arg0) {    
      _pre_call_callback_gl("glIndexubv", (void*)glIndexubv, 1, arg0);
       glad_glIndexubv(arg0);
      _post_call_callback_gl("glIndexubv", (void*)glIndexubv, 1, arg0);
      
  }
  PFNGLINDEXUBVPROC glad_debug_glIndexubv = glad_debug_impl_glIndexubv;
  PFNGLINITNAMESPROC glad_glInitNames;
  void APIENTRY glad_debug_impl_glInitNames(void) {    
      _pre_call_callback_gl("glInitNames", (void*)glInitNames, 0);
       glad_glInitNames();
      _post_call_callback_gl("glInitNames", (void*)glInitNames, 0);
      
  }
  PFNGLINITNAMESPROC glad_debug_glInitNames = glad_debug_impl_glInitNames;
  PFNGLINTERLEAVEDARRAYSPROC glad_glInterleavedArrays;
  void APIENTRY glad_debug_impl_glInterleavedArrays(GLenum arg0, GLsizei arg1, const void * arg2) {    
      _pre_call_callback_gl("glInterleavedArrays", (void*)glInterleavedArrays, 3, arg0, arg1, arg2);
       glad_glInterleavedArrays(arg0, arg1, arg2);
      _post_call_callback_gl("glInterleavedArrays", (void*)glInterleavedArrays, 3, arg0, arg1, arg2);
      
  }
  PFNGLINTERLEAVEDARRAYSPROC glad_debug_glInterleavedArrays = glad_debug_impl_glInterleavedArrays;
  PFNGLINVALIDATEBUFFERDATAPROC glad_glInvalidateBufferData;
  void APIENTRY glad_debug_impl_glInvalidateBufferData(GLuint arg0) {    
      _pre_call_callback_gl("glInvalidateBufferData", (void*)glInvalidateBufferData, 1, arg0);
       glad_glInvalidateBufferData(arg0);
      _post_call_callback_gl("glInvalidateBufferData", (void*)glInvalidateBufferData, 1, arg0);
      
  }
  PFNGLINVALIDATEBUFFERDATAPROC glad_debug_glInvalidateBufferData = glad_debug_impl_glInvalidateBufferData;
  PFNGLINVALIDATEBUFFERSUBDATAPROC glad_glInvalidateBufferSubData;
  void APIENTRY glad_debug_impl_glInvalidateBufferSubData(GLuint arg0, GLintptr arg1, GLsizeiptr arg2) {    
      _pre_call_callback_gl("glInvalidateBufferSubData", (void*)glInvalidateBufferSubData, 3, arg0, arg1, arg2);
       glad_glInvalidateBufferSubData(arg0, arg1, arg2);
      _post_call_callback_gl("glInvalidateBufferSubData", (void*)glInvalidateBufferSubData, 3, arg0, arg1, arg2);
      
  }
  PFNGLINVALIDATEBUFFERSUBDATAPROC glad_debug_glInvalidateBufferSubData = glad_debug_impl_glInvalidateBufferSubData;
  PFNGLINVALIDATEFRAMEBUFFERPROC glad_glInvalidateFramebuffer;
  void APIENTRY glad_debug_impl_glInvalidateFramebuffer(GLenum arg0, GLsizei arg1, const GLenum * arg2) {    
      _pre_call_callback_gl("glInvalidateFramebuffer", (void*)glInvalidateFramebuffer, 3, arg0, arg1, arg2);
       glad_glInvalidateFramebuffer(arg0, arg1, arg2);
      _post_call_callback_gl("glInvalidateFramebuffer", (void*)glInvalidateFramebuffer, 3, arg0, arg1, arg2);
      
  }
  PFNGLINVALIDATEFRAMEBUFFERPROC glad_debug_glInvalidateFramebuffer = glad_debug_impl_glInvalidateFramebuffer;
  PFNGLINVALIDATESUBFRAMEBUFFERPROC glad_glInvalidateSubFramebuffer;
  void APIENTRY glad_debug_impl_glInvalidateSubFramebuffer(GLenum arg0, GLsizei arg1, const GLenum * arg2, GLint arg3, GLint arg4, GLsizei arg5, GLsizei arg6) {    
      _pre_call_callback_gl("glInvalidateSubFramebuffer", (void*)glInvalidateSubFramebuffer, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
       glad_glInvalidateSubFramebuffer(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      _post_call_callback_gl("glInvalidateSubFramebuffer", (void*)glInvalidateSubFramebuffer, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      
  }
  PFNGLINVALIDATESUBFRAMEBUFFERPROC glad_debug_glInvalidateSubFramebuffer = glad_debug_impl_glInvalidateSubFramebuffer;
  PFNGLINVALIDATETEXIMAGEPROC glad_glInvalidateTexImage;
  void APIENTRY glad_debug_impl_glInvalidateTexImage(GLuint arg0, GLint arg1) {    
      _pre_call_callback_gl("glInvalidateTexImage", (void*)glInvalidateTexImage, 2, arg0, arg1);
       glad_glInvalidateTexImage(arg0, arg1);
      _post_call_callback_gl("glInvalidateTexImage", (void*)glInvalidateTexImage, 2, arg0, arg1);
      
  }
  PFNGLINVALIDATETEXIMAGEPROC glad_debug_glInvalidateTexImage = glad_debug_impl_glInvalidateTexImage;
  PFNGLINVALIDATETEXSUBIMAGEPROC glad_glInvalidateTexSubImage;
  void APIENTRY glad_debug_impl_glInvalidateTexSubImage(GLuint arg0, GLint arg1, GLint arg2, GLint arg3, GLint arg4, GLsizei arg5, GLsizei arg6, GLsizei arg7) {    
      _pre_call_callback_gl("glInvalidateTexSubImage", (void*)glInvalidateTexSubImage, 8, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
       glad_glInvalidateTexSubImage(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
      _post_call_callback_gl("glInvalidateTexSubImage", (void*)glInvalidateTexSubImage, 8, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
      
  }
  PFNGLINVALIDATETEXSUBIMAGEPROC glad_debug_glInvalidateTexSubImage = glad_debug_impl_glInvalidateTexSubImage;
  PFNGLISBUFFERPROC glad_glIsBuffer;
  GLboolean APIENTRY glad_debug_impl_glIsBuffer(GLuint arg0) {    
      GLboolean ret;
      _pre_call_callback_gl("glIsBuffer", (void*)glIsBuffer, 1, arg0);
      ret =  glad_glIsBuffer(arg0);
      _post_call_callback_gl("glIsBuffer", (void*)glIsBuffer, 1, arg0);
      return ret;
  }
  PFNGLISBUFFERPROC glad_debug_glIsBuffer = glad_debug_impl_glIsBuffer;
  PFNGLISENABLEDPROC glad_glIsEnabled;
  GLboolean APIENTRY glad_debug_impl_glIsEnabled(GLenum arg0) {    
      GLboolean ret;
      _pre_call_callback_gl("glIsEnabled", (void*)glIsEnabled, 1, arg0);
      ret =  glad_glIsEnabled(arg0);
      _post_call_callback_gl("glIsEnabled", (void*)glIsEnabled, 1, arg0);
      return ret;
  }
  PFNGLISENABLEDPROC glad_debug_glIsEnabled = glad_debug_impl_glIsEnabled;
  PFNGLISENABLEDIPROC glad_glIsEnabledi;
  GLboolean APIENTRY glad_debug_impl_glIsEnabledi(GLenum arg0, GLuint arg1) {    
      GLboolean ret;
      _pre_call_callback_gl("glIsEnabledi", (void*)glIsEnabledi, 2, arg0, arg1);
      ret =  glad_glIsEnabledi(arg0, arg1);
      _post_call_callback_gl("glIsEnabledi", (void*)glIsEnabledi, 2, arg0, arg1);
      return ret;
  }
  PFNGLISENABLEDIPROC glad_debug_glIsEnabledi = glad_debug_impl_glIsEnabledi;
  PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer;
  GLboolean APIENTRY glad_debug_impl_glIsFramebuffer(GLuint arg0) {    
      GLboolean ret;
      _pre_call_callback_gl("glIsFramebuffer", (void*)glIsFramebuffer, 1, arg0);
      ret =  glad_glIsFramebuffer(arg0);
      _post_call_callback_gl("glIsFramebuffer", (void*)glIsFramebuffer, 1, arg0);
      return ret;
  }
  PFNGLISFRAMEBUFFERPROC glad_debug_glIsFramebuffer = glad_debug_impl_glIsFramebuffer;
  PFNGLISLISTPROC glad_glIsList;
  GLboolean APIENTRY glad_debug_impl_glIsList(GLuint arg0) {    
      GLboolean ret;
      _pre_call_callback_gl("glIsList", (void*)glIsList, 1, arg0);
      ret =  glad_glIsList(arg0);
      _post_call_callback_gl("glIsList", (void*)glIsList, 1, arg0);
      return ret;
  }
  PFNGLISLISTPROC glad_debug_glIsList = glad_debug_impl_glIsList;
  PFNGLISPROGRAMPROC glad_glIsProgram;
  GLboolean APIENTRY glad_debug_impl_glIsProgram(GLuint arg0) {    
      GLboolean ret;
      _pre_call_callback_gl("glIsProgram", (void*)glIsProgram, 1, arg0);
      ret =  glad_glIsProgram(arg0);
      _post_call_callback_gl("glIsProgram", (void*)glIsProgram, 1, arg0);
      return ret;
  }
  PFNGLISPROGRAMPROC glad_debug_glIsProgram = glad_debug_impl_glIsProgram;
  PFNGLISPROGRAMPIPELINEPROC glad_glIsProgramPipeline;
  GLboolean APIENTRY glad_debug_impl_glIsProgramPipeline(GLuint arg0) {    
      GLboolean ret;
      _pre_call_callback_gl("glIsProgramPipeline", (void*)glIsProgramPipeline, 1, arg0);
      ret =  glad_glIsProgramPipeline(arg0);
      _post_call_callback_gl("glIsProgramPipeline", (void*)glIsProgramPipeline, 1, arg0);
      return ret;
  }
  PFNGLISPROGRAMPIPELINEPROC glad_debug_glIsProgramPipeline = glad_debug_impl_glIsProgramPipeline;
  PFNGLISQUERYPROC glad_glIsQuery;
  GLboolean APIENTRY glad_debug_impl_glIsQuery(GLuint arg0) {    
      GLboolean ret;
      _pre_call_callback_gl("glIsQuery", (void*)glIsQuery, 1, arg0);
      ret =  glad_glIsQuery(arg0);
      _post_call_callback_gl("glIsQuery", (void*)glIsQuery, 1, arg0);
      return ret;
  }
  PFNGLISQUERYPROC glad_debug_glIsQuery = glad_debug_impl_glIsQuery;
  PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer;
  GLboolean APIENTRY glad_debug_impl_glIsRenderbuffer(GLuint arg0) {    
      GLboolean ret;
      _pre_call_callback_gl("glIsRenderbuffer", (void*)glIsRenderbuffer, 1, arg0);
      ret =  glad_glIsRenderbuffer(arg0);
      _post_call_callback_gl("glIsRenderbuffer", (void*)glIsRenderbuffer, 1, arg0);
      return ret;
  }
  PFNGLISRENDERBUFFERPROC glad_debug_glIsRenderbuffer = glad_debug_impl_glIsRenderbuffer;
  PFNGLISSAMPLERPROC glad_glIsSampler;
  GLboolean APIENTRY glad_debug_impl_glIsSampler(GLuint arg0) {    
      GLboolean ret;
      _pre_call_callback_gl("glIsSampler", (void*)glIsSampler, 1, arg0);
      ret =  glad_glIsSampler(arg0);
      _post_call_callback_gl("glIsSampler", (void*)glIsSampler, 1, arg0);
      return ret;
  }
  PFNGLISSAMPLERPROC glad_debug_glIsSampler = glad_debug_impl_glIsSampler;
  PFNGLISSHADERPROC glad_glIsShader;
  GLboolean APIENTRY glad_debug_impl_glIsShader(GLuint arg0) {    
      GLboolean ret;
      _pre_call_callback_gl("glIsShader", (void*)glIsShader, 1, arg0);
      ret =  glad_glIsShader(arg0);
      _post_call_callback_gl("glIsShader", (void*)glIsShader, 1, arg0);
      return ret;
  }
  PFNGLISSHADERPROC glad_debug_glIsShader = glad_debug_impl_glIsShader;
  PFNGLISSYNCPROC glad_glIsSync;
  GLboolean APIENTRY glad_debug_impl_glIsSync(GLsync arg0) {    
      GLboolean ret;
      _pre_call_callback_gl("glIsSync", (void*)glIsSync, 1, arg0);
      ret =  glad_glIsSync(arg0);
      _post_call_callback_gl("glIsSync", (void*)glIsSync, 1, arg0);
      return ret;
  }
  PFNGLISSYNCPROC glad_debug_glIsSync = glad_debug_impl_glIsSync;
  PFNGLISTEXTUREPROC glad_glIsTexture;
  GLboolean APIENTRY glad_debug_impl_glIsTexture(GLuint arg0) {    
      GLboolean ret;
      _pre_call_callback_gl("glIsTexture", (void*)glIsTexture, 1, arg0);
      ret =  glad_glIsTexture(arg0);
      _post_call_callback_gl("glIsTexture", (void*)glIsTexture, 1, arg0);
      return ret;
  }
  PFNGLISTEXTUREPROC glad_debug_glIsTexture = glad_debug_impl_glIsTexture;
  PFNGLISTRANSFORMFEEDBACKPROC glad_glIsTransformFeedback;
  GLboolean APIENTRY glad_debug_impl_glIsTransformFeedback(GLuint arg0) {    
      GLboolean ret;
      _pre_call_callback_gl("glIsTransformFeedback", (void*)glIsTransformFeedback, 1, arg0);
      ret =  glad_glIsTransformFeedback(arg0);
      _post_call_callback_gl("glIsTransformFeedback", (void*)glIsTransformFeedback, 1, arg0);
      return ret;
  }
  PFNGLISTRANSFORMFEEDBACKPROC glad_debug_glIsTransformFeedback = glad_debug_impl_glIsTransformFeedback;
  PFNGLISVERTEXARRAYPROC glad_glIsVertexArray;
  GLboolean APIENTRY glad_debug_impl_glIsVertexArray(GLuint arg0) {    
      GLboolean ret;
      _pre_call_callback_gl("glIsVertexArray", (void*)glIsVertexArray, 1, arg0);
      ret =  glad_glIsVertexArray(arg0);
      _post_call_callback_gl("glIsVertexArray", (void*)glIsVertexArray, 1, arg0);
      return ret;
  }
  PFNGLISVERTEXARRAYPROC glad_debug_glIsVertexArray = glad_debug_impl_glIsVertexArray;
  PFNGLLIGHTMODELFPROC glad_glLightModelf;
  void APIENTRY glad_debug_impl_glLightModelf(GLenum arg0, GLfloat arg1) {    
      _pre_call_callback_gl("glLightModelf", (void*)glLightModelf, 2, arg0, arg1);
       glad_glLightModelf(arg0, arg1);
      _post_call_callback_gl("glLightModelf", (void*)glLightModelf, 2, arg0, arg1);
      
  }
  PFNGLLIGHTMODELFPROC glad_debug_glLightModelf = glad_debug_impl_glLightModelf;
  PFNGLLIGHTMODELFVPROC glad_glLightModelfv;
  void APIENTRY glad_debug_impl_glLightModelfv(GLenum arg0, const GLfloat * arg1) {    
      _pre_call_callback_gl("glLightModelfv", (void*)glLightModelfv, 2, arg0, arg1);
       glad_glLightModelfv(arg0, arg1);
      _post_call_callback_gl("glLightModelfv", (void*)glLightModelfv, 2, arg0, arg1);
      
  }
  PFNGLLIGHTMODELFVPROC glad_debug_glLightModelfv = glad_debug_impl_glLightModelfv;
  PFNGLLIGHTMODELIPROC glad_glLightModeli;
  void APIENTRY glad_debug_impl_glLightModeli(GLenum arg0, GLint arg1) {    
      _pre_call_callback_gl("glLightModeli", (void*)glLightModeli, 2, arg0, arg1);
       glad_glLightModeli(arg0, arg1);
      _post_call_callback_gl("glLightModeli", (void*)glLightModeli, 2, arg0, arg1);
      
  }
  PFNGLLIGHTMODELIPROC glad_debug_glLightModeli = glad_debug_impl_glLightModeli;
  PFNGLLIGHTMODELIVPROC glad_glLightModeliv;
  void APIENTRY glad_debug_impl_glLightModeliv(GLenum arg0, const GLint * arg1) {    
      _pre_call_callback_gl("glLightModeliv", (void*)glLightModeliv, 2, arg0, arg1);
       glad_glLightModeliv(arg0, arg1);
      _post_call_callback_gl("glLightModeliv", (void*)glLightModeliv, 2, arg0, arg1);
      
  }
  PFNGLLIGHTMODELIVPROC glad_debug_glLightModeliv = glad_debug_impl_glLightModeliv;
  PFNGLLIGHTFPROC glad_glLightf;
  void APIENTRY glad_debug_impl_glLightf(GLenum arg0, GLenum arg1, GLfloat arg2) {    
      _pre_call_callback_gl("glLightf", (void*)glLightf, 3, arg0, arg1, arg2);
       glad_glLightf(arg0, arg1, arg2);
      _post_call_callback_gl("glLightf", (void*)glLightf, 3, arg0, arg1, arg2);
      
  }
  PFNGLLIGHTFPROC glad_debug_glLightf = glad_debug_impl_glLightf;
  PFNGLLIGHTFVPROC glad_glLightfv;
  void APIENTRY glad_debug_impl_glLightfv(GLenum arg0, GLenum arg1, const GLfloat * arg2) {    
      _pre_call_callback_gl("glLightfv", (void*)glLightfv, 3, arg0, arg1, arg2);
       glad_glLightfv(arg0, arg1, arg2);
      _post_call_callback_gl("glLightfv", (void*)glLightfv, 3, arg0, arg1, arg2);
      
  }
  PFNGLLIGHTFVPROC glad_debug_glLightfv = glad_debug_impl_glLightfv;
  PFNGLLIGHTIPROC glad_glLighti;
  void APIENTRY glad_debug_impl_glLighti(GLenum arg0, GLenum arg1, GLint arg2) {    
      _pre_call_callback_gl("glLighti", (void*)glLighti, 3, arg0, arg1, arg2);
       glad_glLighti(arg0, arg1, arg2);
      _post_call_callback_gl("glLighti", (void*)glLighti, 3, arg0, arg1, arg2);
      
  }
  PFNGLLIGHTIPROC glad_debug_glLighti = glad_debug_impl_glLighti;
  PFNGLLIGHTIVPROC glad_glLightiv;
  void APIENTRY glad_debug_impl_glLightiv(GLenum arg0, GLenum arg1, const GLint * arg2) {    
      _pre_call_callback_gl("glLightiv", (void*)glLightiv, 3, arg0, arg1, arg2);
       glad_glLightiv(arg0, arg1, arg2);
      _post_call_callback_gl("glLightiv", (void*)glLightiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLLIGHTIVPROC glad_debug_glLightiv = glad_debug_impl_glLightiv;
  PFNGLLINESTIPPLEPROC glad_glLineStipple;
  void APIENTRY glad_debug_impl_glLineStipple(GLint arg0, GLushort arg1) {    
      _pre_call_callback_gl("glLineStipple", (void*)glLineStipple, 2, arg0, arg1);
       glad_glLineStipple(arg0, arg1);
      _post_call_callback_gl("glLineStipple", (void*)glLineStipple, 2, arg0, arg1);
      
  }
  PFNGLLINESTIPPLEPROC glad_debug_glLineStipple = glad_debug_impl_glLineStipple;
  PFNGLLINEWIDTHPROC glad_glLineWidth;
  void APIENTRY glad_debug_impl_glLineWidth(GLfloat arg0) {    
      _pre_call_callback_gl("glLineWidth", (void*)glLineWidth, 1, arg0);
       glad_glLineWidth(arg0);
      _post_call_callback_gl("glLineWidth", (void*)glLineWidth, 1, arg0);
      
  }
  PFNGLLINEWIDTHPROC glad_debug_glLineWidth = glad_debug_impl_glLineWidth;
  PFNGLLINKPROGRAMPROC glad_glLinkProgram;
  void APIENTRY glad_debug_impl_glLinkProgram(GLuint arg0) {    
      _pre_call_callback_gl("glLinkProgram", (void*)glLinkProgram, 1, arg0);
       glad_glLinkProgram(arg0);
      _post_call_callback_gl("glLinkProgram", (void*)glLinkProgram, 1, arg0);
      
  }
  PFNGLLINKPROGRAMPROC glad_debug_glLinkProgram = glad_debug_impl_glLinkProgram;
  PFNGLLISTBASEPROC glad_glListBase;
  void APIENTRY glad_debug_impl_glListBase(GLuint arg0) {    
      _pre_call_callback_gl("glListBase", (void*)glListBase, 1, arg0);
       glad_glListBase(arg0);
      _post_call_callback_gl("glListBase", (void*)glListBase, 1, arg0);
      
  }
  PFNGLLISTBASEPROC glad_debug_glListBase = glad_debug_impl_glListBase;
  PFNGLLOADIDENTITYPROC glad_glLoadIdentity;
  void APIENTRY glad_debug_impl_glLoadIdentity(void) {    
      _pre_call_callback_gl("glLoadIdentity", (void*)glLoadIdentity, 0);
       glad_glLoadIdentity();
      _post_call_callback_gl("glLoadIdentity", (void*)glLoadIdentity, 0);
      
  }
  PFNGLLOADIDENTITYPROC glad_debug_glLoadIdentity = glad_debug_impl_glLoadIdentity;
  PFNGLLOADMATRIXDPROC glad_glLoadMatrixd;
  void APIENTRY glad_debug_impl_glLoadMatrixd(const GLdouble * arg0) {    
      _pre_call_callback_gl("glLoadMatrixd", (void*)glLoadMatrixd, 1, arg0);
       glad_glLoadMatrixd(arg0);
      _post_call_callback_gl("glLoadMatrixd", (void*)glLoadMatrixd, 1, arg0);
      
  }
  PFNGLLOADMATRIXDPROC glad_debug_glLoadMatrixd = glad_debug_impl_glLoadMatrixd;
  PFNGLLOADMATRIXFPROC glad_glLoadMatrixf;
  void APIENTRY glad_debug_impl_glLoadMatrixf(const GLfloat * arg0) {    
      _pre_call_callback_gl("glLoadMatrixf", (void*)glLoadMatrixf, 1, arg0);
       glad_glLoadMatrixf(arg0);
      _post_call_callback_gl("glLoadMatrixf", (void*)glLoadMatrixf, 1, arg0);
      
  }
  PFNGLLOADMATRIXFPROC glad_debug_glLoadMatrixf = glad_debug_impl_glLoadMatrixf;
  PFNGLLOADNAMEPROC glad_glLoadName;
  void APIENTRY glad_debug_impl_glLoadName(GLuint arg0) {    
      _pre_call_callback_gl("glLoadName", (void*)glLoadName, 1, arg0);
       glad_glLoadName(arg0);
      _post_call_callback_gl("glLoadName", (void*)glLoadName, 1, arg0);
      
  }
  PFNGLLOADNAMEPROC glad_debug_glLoadName = glad_debug_impl_glLoadName;
  PFNGLLOADTRANSPOSEMATRIXDPROC glad_glLoadTransposeMatrixd;
  void APIENTRY glad_debug_impl_glLoadTransposeMatrixd(const GLdouble * arg0) {    
      _pre_call_callback_gl("glLoadTransposeMatrixd", (void*)glLoadTransposeMatrixd, 1, arg0);
       glad_glLoadTransposeMatrixd(arg0);
      _post_call_callback_gl("glLoadTransposeMatrixd", (void*)glLoadTransposeMatrixd, 1, arg0);
      
  }
  PFNGLLOADTRANSPOSEMATRIXDPROC glad_debug_glLoadTransposeMatrixd = glad_debug_impl_glLoadTransposeMatrixd;
  PFNGLLOADTRANSPOSEMATRIXFPROC glad_glLoadTransposeMatrixf;
  void APIENTRY glad_debug_impl_glLoadTransposeMatrixf(const GLfloat * arg0) {    
      _pre_call_callback_gl("glLoadTransposeMatrixf", (void*)glLoadTransposeMatrixf, 1, arg0);
       glad_glLoadTransposeMatrixf(arg0);
      _post_call_callback_gl("glLoadTransposeMatrixf", (void*)glLoadTransposeMatrixf, 1, arg0);
      
  }
  PFNGLLOADTRANSPOSEMATRIXFPROC glad_debug_glLoadTransposeMatrixf = glad_debug_impl_glLoadTransposeMatrixf;
  PFNGLLOGICOPPROC glad_glLogicOp;
  void APIENTRY glad_debug_impl_glLogicOp(GLenum arg0) {    
      _pre_call_callback_gl("glLogicOp", (void*)glLogicOp, 1, arg0);
       glad_glLogicOp(arg0);
      _post_call_callback_gl("glLogicOp", (void*)glLogicOp, 1, arg0);
      
  }
  PFNGLLOGICOPPROC glad_debug_glLogicOp = glad_debug_impl_glLogicOp;
  PFNGLMAP1DPROC glad_glMap1d;
  void APIENTRY glad_debug_impl_glMap1d(GLenum arg0, GLdouble arg1, GLdouble arg2, GLint arg3, GLint arg4, const GLdouble * arg5) {    
      _pre_call_callback_gl("glMap1d", (void*)glMap1d, 6, arg0, arg1, arg2, arg3, arg4, arg5);
       glad_glMap1d(arg0, arg1, arg2, arg3, arg4, arg5);
      _post_call_callback_gl("glMap1d", (void*)glMap1d, 6, arg0, arg1, arg2, arg3, arg4, arg5);
      
  }
  PFNGLMAP1DPROC glad_debug_glMap1d = glad_debug_impl_glMap1d;
  PFNGLMAP1FPROC glad_glMap1f;
  void APIENTRY glad_debug_impl_glMap1f(GLenum arg0, GLfloat arg1, GLfloat arg2, GLint arg3, GLint arg4, const GLfloat * arg5) {    
      _pre_call_callback_gl("glMap1f", (void*)glMap1f, 6, arg0, arg1, arg2, arg3, arg4, arg5);
       glad_glMap1f(arg0, arg1, arg2, arg3, arg4, arg5);
      _post_call_callback_gl("glMap1f", (void*)glMap1f, 6, arg0, arg1, arg2, arg3, arg4, arg5);
      
  }
  PFNGLMAP1FPROC glad_debug_glMap1f = glad_debug_impl_glMap1f;
  PFNGLMAP2DPROC glad_glMap2d;
  void APIENTRY glad_debug_impl_glMap2d(GLenum arg0, GLdouble arg1, GLdouble arg2, GLint arg3, GLint arg4, GLdouble arg5, GLdouble arg6, GLint arg7, GLint arg8, const GLdouble * arg9) {    
      _pre_call_callback_gl("glMap2d", (void*)glMap2d, 10, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
       glad_glMap2d(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
      _post_call_callback_gl("glMap2d", (void*)glMap2d, 10, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
      
  }
  PFNGLMAP2DPROC glad_debug_glMap2d = glad_debug_impl_glMap2d;
  PFNGLMAP2FPROC glad_glMap2f;
  void APIENTRY glad_debug_impl_glMap2f(GLenum arg0, GLfloat arg1, GLfloat arg2, GLint arg3, GLint arg4, GLfloat arg5, GLfloat arg6, GLint arg7, GLint arg8, const GLfloat * arg9) {    
      _pre_call_callback_gl("glMap2f", (void*)glMap2f, 10, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
       glad_glMap2f(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
      _post_call_callback_gl("glMap2f", (void*)glMap2f, 10, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
      
  }
  PFNGLMAP2FPROC glad_debug_glMap2f = glad_debug_impl_glMap2f;
  PFNGLMAPBUFFERPROC glad_glMapBuffer;
  void * APIENTRY glad_debug_impl_glMapBuffer(GLenum arg0, GLenum arg1) {    
      void * ret;
      _pre_call_callback_gl("glMapBuffer", (void*)glMapBuffer, 2, arg0, arg1);
      ret =  glad_glMapBuffer(arg0, arg1);
      _post_call_callback_gl("glMapBuffer", (void*)glMapBuffer, 2, arg0, arg1);
      return ret;
  }
  PFNGLMAPBUFFERPROC glad_debug_glMapBuffer = glad_debug_impl_glMapBuffer;
  PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange;
  void * APIENTRY glad_debug_impl_glMapBufferRange(GLenum arg0, GLintptr arg1, GLsizeiptr arg2, GLbitfield arg3) {    
      void * ret;
      _pre_call_callback_gl("glMapBufferRange", (void*)glMapBufferRange, 4, arg0, arg1, arg2, arg3);
      ret =  glad_glMapBufferRange(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glMapBufferRange", (void*)glMapBufferRange, 4, arg0, arg1, arg2, arg3);
      return ret;
  }
  PFNGLMAPBUFFERRANGEPROC glad_debug_glMapBufferRange = glad_debug_impl_glMapBufferRange;
  PFNGLMAPGRID1DPROC glad_glMapGrid1d;
  void APIENTRY glad_debug_impl_glMapGrid1d(GLint arg0, GLdouble arg1, GLdouble arg2) {    
      _pre_call_callback_gl("glMapGrid1d", (void*)glMapGrid1d, 3, arg0, arg1, arg2);
       glad_glMapGrid1d(arg0, arg1, arg2);
      _post_call_callback_gl("glMapGrid1d", (void*)glMapGrid1d, 3, arg0, arg1, arg2);
      
  }
  PFNGLMAPGRID1DPROC glad_debug_glMapGrid1d = glad_debug_impl_glMapGrid1d;
  PFNGLMAPGRID1FPROC glad_glMapGrid1f;
  void APIENTRY glad_debug_impl_glMapGrid1f(GLint arg0, GLfloat arg1, GLfloat arg2) {    
      _pre_call_callback_gl("glMapGrid1f", (void*)glMapGrid1f, 3, arg0, arg1, arg2);
       glad_glMapGrid1f(arg0, arg1, arg2);
      _post_call_callback_gl("glMapGrid1f", (void*)glMapGrid1f, 3, arg0, arg1, arg2);
      
  }
  PFNGLMAPGRID1FPROC glad_debug_glMapGrid1f = glad_debug_impl_glMapGrid1f;
  PFNGLMAPGRID2DPROC glad_glMapGrid2d;
  void APIENTRY glad_debug_impl_glMapGrid2d(GLint arg0, GLdouble arg1, GLdouble arg2, GLint arg3, GLdouble arg4, GLdouble arg5) {    
      _pre_call_callback_gl("glMapGrid2d", (void*)glMapGrid2d, 6, arg0, arg1, arg2, arg3, arg4, arg5);
       glad_glMapGrid2d(arg0, arg1, arg2, arg3, arg4, arg5);
      _post_call_callback_gl("glMapGrid2d", (void*)glMapGrid2d, 6, arg0, arg1, arg2, arg3, arg4, arg5);
      
  }
  PFNGLMAPGRID2DPROC glad_debug_glMapGrid2d = glad_debug_impl_glMapGrid2d;
  PFNGLMAPGRID2FPROC glad_glMapGrid2f;
  void APIENTRY glad_debug_impl_glMapGrid2f(GLint arg0, GLfloat arg1, GLfloat arg2, GLint arg3, GLfloat arg4, GLfloat arg5) {    
      _pre_call_callback_gl("glMapGrid2f", (void*)glMapGrid2f, 6, arg0, arg1, arg2, arg3, arg4, arg5);
       glad_glMapGrid2f(arg0, arg1, arg2, arg3, arg4, arg5);
      _post_call_callback_gl("glMapGrid2f", (void*)glMapGrid2f, 6, arg0, arg1, arg2, arg3, arg4, arg5);
      
  }
  PFNGLMAPGRID2FPROC glad_debug_glMapGrid2f = glad_debug_impl_glMapGrid2f;
  PFNGLMATERIALFPROC glad_glMaterialf;
  void APIENTRY glad_debug_impl_glMaterialf(GLenum arg0, GLenum arg1, GLfloat arg2) {    
      _pre_call_callback_gl("glMaterialf", (void*)glMaterialf, 3, arg0, arg1, arg2);
       glad_glMaterialf(arg0, arg1, arg2);
      _post_call_callback_gl("glMaterialf", (void*)glMaterialf, 3, arg0, arg1, arg2);
      
  }
  PFNGLMATERIALFPROC glad_debug_glMaterialf = glad_debug_impl_glMaterialf;
  PFNGLMATERIALFVPROC glad_glMaterialfv;
  void APIENTRY glad_debug_impl_glMaterialfv(GLenum arg0, GLenum arg1, const GLfloat * arg2) {    
      _pre_call_callback_gl("glMaterialfv", (void*)glMaterialfv, 3, arg0, arg1, arg2);
       glad_glMaterialfv(arg0, arg1, arg2);
      _post_call_callback_gl("glMaterialfv", (void*)glMaterialfv, 3, arg0, arg1, arg2);
      
  }
  PFNGLMATERIALFVPROC glad_debug_glMaterialfv = glad_debug_impl_glMaterialfv;
  PFNGLMATERIALIPROC glad_glMateriali;
  void APIENTRY glad_debug_impl_glMateriali(GLenum arg0, GLenum arg1, GLint arg2) {    
      _pre_call_callback_gl("glMateriali", (void*)glMateriali, 3, arg0, arg1, arg2);
       glad_glMateriali(arg0, arg1, arg2);
      _post_call_callback_gl("glMateriali", (void*)glMateriali, 3, arg0, arg1, arg2);
      
  }
  PFNGLMATERIALIPROC glad_debug_glMateriali = glad_debug_impl_glMateriali;
  PFNGLMATERIALIVPROC glad_glMaterialiv;
  void APIENTRY glad_debug_impl_glMaterialiv(GLenum arg0, GLenum arg1, const GLint * arg2) {    
      _pre_call_callback_gl("glMaterialiv", (void*)glMaterialiv, 3, arg0, arg1, arg2);
       glad_glMaterialiv(arg0, arg1, arg2);
      _post_call_callback_gl("glMaterialiv", (void*)glMaterialiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLMATERIALIVPROC glad_debug_glMaterialiv = glad_debug_impl_glMaterialiv;
  PFNGLMATRIXMODEPROC glad_glMatrixMode;
  void APIENTRY glad_debug_impl_glMatrixMode(GLenum arg0) {    
      _pre_call_callback_gl("glMatrixMode", (void*)glMatrixMode, 1, arg0);
       glad_glMatrixMode(arg0);
      _post_call_callback_gl("glMatrixMode", (void*)glMatrixMode, 1, arg0);
      
  }
  PFNGLMATRIXMODEPROC glad_debug_glMatrixMode = glad_debug_impl_glMatrixMode;
  PFNGLMEMORYBARRIERPROC glad_glMemoryBarrier;
  void APIENTRY glad_debug_impl_glMemoryBarrier(GLbitfield arg0) {    
      _pre_call_callback_gl("glMemoryBarrier", (void*)glMemoryBarrier, 1, arg0);
       glad_glMemoryBarrier(arg0);
      _post_call_callback_gl("glMemoryBarrier", (void*)glMemoryBarrier, 1, arg0);
      
  }
  PFNGLMEMORYBARRIERPROC glad_debug_glMemoryBarrier = glad_debug_impl_glMemoryBarrier;
  PFNGLMEMORYBARRIERBYREGIONPROC glad_glMemoryBarrierByRegion;
  void APIENTRY glad_debug_impl_glMemoryBarrierByRegion(GLbitfield arg0) {    
      _pre_call_callback_gl("glMemoryBarrierByRegion", (void*)glMemoryBarrierByRegion, 1, arg0);
       glad_glMemoryBarrierByRegion(arg0);
      _post_call_callback_gl("glMemoryBarrierByRegion", (void*)glMemoryBarrierByRegion, 1, arg0);
      
  }
  PFNGLMEMORYBARRIERBYREGIONPROC glad_debug_glMemoryBarrierByRegion = glad_debug_impl_glMemoryBarrierByRegion;
  PFNGLMINSAMPLESHADINGPROC glad_glMinSampleShading;
  void APIENTRY glad_debug_impl_glMinSampleShading(GLfloat arg0) {    
      _pre_call_callback_gl("glMinSampleShading", (void*)glMinSampleShading, 1, arg0);
       glad_glMinSampleShading(arg0);
      _post_call_callback_gl("glMinSampleShading", (void*)glMinSampleShading, 1, arg0);
      
  }
  PFNGLMINSAMPLESHADINGPROC glad_debug_glMinSampleShading = glad_debug_impl_glMinSampleShading;
  PFNGLMULTMATRIXDPROC glad_glMultMatrixd;
  void APIENTRY glad_debug_impl_glMultMatrixd(const GLdouble * arg0) {    
      _pre_call_callback_gl("glMultMatrixd", (void*)glMultMatrixd, 1, arg0);
       glad_glMultMatrixd(arg0);
      _post_call_callback_gl("glMultMatrixd", (void*)glMultMatrixd, 1, arg0);
      
  }
  PFNGLMULTMATRIXDPROC glad_debug_glMultMatrixd = glad_debug_impl_glMultMatrixd;
  PFNGLMULTMATRIXFPROC glad_glMultMatrixf;
  void APIENTRY glad_debug_impl_glMultMatrixf(const GLfloat * arg0) {    
      _pre_call_callback_gl("glMultMatrixf", (void*)glMultMatrixf, 1, arg0);
       glad_glMultMatrixf(arg0);
      _post_call_callback_gl("glMultMatrixf", (void*)glMultMatrixf, 1, arg0);
      
  }
  PFNGLMULTMATRIXFPROC glad_debug_glMultMatrixf = glad_debug_impl_glMultMatrixf;
  PFNGLMULTTRANSPOSEMATRIXDPROC glad_glMultTransposeMatrixd;
  void APIENTRY glad_debug_impl_glMultTransposeMatrixd(const GLdouble * arg0) {    
      _pre_call_callback_gl("glMultTransposeMatrixd", (void*)glMultTransposeMatrixd, 1, arg0);
       glad_glMultTransposeMatrixd(arg0);
      _post_call_callback_gl("glMultTransposeMatrixd", (void*)glMultTransposeMatrixd, 1, arg0);
      
  }
  PFNGLMULTTRANSPOSEMATRIXDPROC glad_debug_glMultTransposeMatrixd = glad_debug_impl_glMultTransposeMatrixd;
  PFNGLMULTTRANSPOSEMATRIXFPROC glad_glMultTransposeMatrixf;
  void APIENTRY glad_debug_impl_glMultTransposeMatrixf(const GLfloat * arg0) {    
      _pre_call_callback_gl("glMultTransposeMatrixf", (void*)glMultTransposeMatrixf, 1, arg0);
       glad_glMultTransposeMatrixf(arg0);
      _post_call_callback_gl("glMultTransposeMatrixf", (void*)glMultTransposeMatrixf, 1, arg0);
      
  }
  PFNGLMULTTRANSPOSEMATRIXFPROC glad_debug_glMultTransposeMatrixf = glad_debug_impl_glMultTransposeMatrixf;
  PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays;
  void APIENTRY glad_debug_impl_glMultiDrawArrays(GLenum arg0, const GLint * arg1, const GLsizei * arg2, GLsizei arg3) {    
      _pre_call_callback_gl("glMultiDrawArrays", (void*)glMultiDrawArrays, 4, arg0, arg1, arg2, arg3);
       glad_glMultiDrawArrays(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glMultiDrawArrays", (void*)glMultiDrawArrays, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLMULTIDRAWARRAYSPROC glad_debug_glMultiDrawArrays = glad_debug_impl_glMultiDrawArrays;
  PFNGLMULTIDRAWARRAYSINDIRECTPROC glad_glMultiDrawArraysIndirect;
  void APIENTRY glad_debug_impl_glMultiDrawArraysIndirect(GLenum arg0, const void * arg1, GLsizei arg2, GLsizei arg3) {    
      _pre_call_callback_gl("glMultiDrawArraysIndirect", (void*)glMultiDrawArraysIndirect, 4, arg0, arg1, arg2, arg3);
       glad_glMultiDrawArraysIndirect(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glMultiDrawArraysIndirect", (void*)glMultiDrawArraysIndirect, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLMULTIDRAWARRAYSINDIRECTPROC glad_debug_glMultiDrawArraysIndirect = glad_debug_impl_glMultiDrawArraysIndirect;
  PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements;
  void APIENTRY glad_debug_impl_glMultiDrawElements(GLenum arg0, const GLsizei * arg1, GLenum arg2, const void *const* arg3, GLsizei arg4) {    
      _pre_call_callback_gl("glMultiDrawElements", (void*)glMultiDrawElements, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glMultiDrawElements(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glMultiDrawElements", (void*)glMultiDrawElements, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLMULTIDRAWELEMENTSPROC glad_debug_glMultiDrawElements = glad_debug_impl_glMultiDrawElements;
  PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex;
  void APIENTRY glad_debug_impl_glMultiDrawElementsBaseVertex(GLenum arg0, const GLsizei * arg1, GLenum arg2, const void *const* arg3, GLsizei arg4, const GLint * arg5) {    
      _pre_call_callback_gl("glMultiDrawElementsBaseVertex", (void*)glMultiDrawElementsBaseVertex, 6, arg0, arg1, arg2, arg3, arg4, arg5);
       glad_glMultiDrawElementsBaseVertex(arg0, arg1, arg2, arg3, arg4, arg5);
      _post_call_callback_gl("glMultiDrawElementsBaseVertex", (void*)glMultiDrawElementsBaseVertex, 6, arg0, arg1, arg2, arg3, arg4, arg5);
      
  }
  PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_debug_glMultiDrawElementsBaseVertex = glad_debug_impl_glMultiDrawElementsBaseVertex;
  PFNGLMULTIDRAWELEMENTSINDIRECTPROC glad_glMultiDrawElementsIndirect;
  void APIENTRY glad_debug_impl_glMultiDrawElementsIndirect(GLenum arg0, GLenum arg1, const void * arg2, GLsizei arg3, GLsizei arg4) {    
      _pre_call_callback_gl("glMultiDrawElementsIndirect", (void*)glMultiDrawElementsIndirect, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glMultiDrawElementsIndirect(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glMultiDrawElementsIndirect", (void*)glMultiDrawElementsIndirect, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLMULTIDRAWELEMENTSINDIRECTPROC glad_debug_glMultiDrawElementsIndirect = glad_debug_impl_glMultiDrawElementsIndirect;
  PFNGLMULTITEXCOORD1DPROC glad_glMultiTexCoord1d;
  void APIENTRY glad_debug_impl_glMultiTexCoord1d(GLenum arg0, GLdouble arg1) {    
      _pre_call_callback_gl("glMultiTexCoord1d", (void*)glMultiTexCoord1d, 2, arg0, arg1);
       glad_glMultiTexCoord1d(arg0, arg1);
      _post_call_callback_gl("glMultiTexCoord1d", (void*)glMultiTexCoord1d, 2, arg0, arg1);
      
  }
  PFNGLMULTITEXCOORD1DPROC glad_debug_glMultiTexCoord1d = glad_debug_impl_glMultiTexCoord1d;
  PFNGLMULTITEXCOORD1DVPROC glad_glMultiTexCoord1dv;
  void APIENTRY glad_debug_impl_glMultiTexCoord1dv(GLenum arg0, const GLdouble * arg1) {    
      _pre_call_callback_gl("glMultiTexCoord1dv", (void*)glMultiTexCoord1dv, 2, arg0, arg1);
       glad_glMultiTexCoord1dv(arg0, arg1);
      _post_call_callback_gl("glMultiTexCoord1dv", (void*)glMultiTexCoord1dv, 2, arg0, arg1);
      
  }
  PFNGLMULTITEXCOORD1DVPROC glad_debug_glMultiTexCoord1dv = glad_debug_impl_glMultiTexCoord1dv;
  PFNGLMULTITEXCOORD1FPROC glad_glMultiTexCoord1f;
  void APIENTRY glad_debug_impl_glMultiTexCoord1f(GLenum arg0, GLfloat arg1) {    
      _pre_call_callback_gl("glMultiTexCoord1f", (void*)glMultiTexCoord1f, 2, arg0, arg1);
       glad_glMultiTexCoord1f(arg0, arg1);
      _post_call_callback_gl("glMultiTexCoord1f", (void*)glMultiTexCoord1f, 2, arg0, arg1);
      
  }
  PFNGLMULTITEXCOORD1FPROC glad_debug_glMultiTexCoord1f = glad_debug_impl_glMultiTexCoord1f;
  PFNGLMULTITEXCOORD1FVPROC glad_glMultiTexCoord1fv;
  void APIENTRY glad_debug_impl_glMultiTexCoord1fv(GLenum arg0, const GLfloat * arg1) {    
      _pre_call_callback_gl("glMultiTexCoord1fv", (void*)glMultiTexCoord1fv, 2, arg0, arg1);
       glad_glMultiTexCoord1fv(arg0, arg1);
      _post_call_callback_gl("glMultiTexCoord1fv", (void*)glMultiTexCoord1fv, 2, arg0, arg1);
      
  }
  PFNGLMULTITEXCOORD1FVPROC glad_debug_glMultiTexCoord1fv = glad_debug_impl_glMultiTexCoord1fv;
  PFNGLMULTITEXCOORD1IPROC glad_glMultiTexCoord1i;
  void APIENTRY glad_debug_impl_glMultiTexCoord1i(GLenum arg0, GLint arg1) {    
      _pre_call_callback_gl("glMultiTexCoord1i", (void*)glMultiTexCoord1i, 2, arg0, arg1);
       glad_glMultiTexCoord1i(arg0, arg1);
      _post_call_callback_gl("glMultiTexCoord1i", (void*)glMultiTexCoord1i, 2, arg0, arg1);
      
  }
  PFNGLMULTITEXCOORD1IPROC glad_debug_glMultiTexCoord1i = glad_debug_impl_glMultiTexCoord1i;
  PFNGLMULTITEXCOORD1IVPROC glad_glMultiTexCoord1iv;
  void APIENTRY glad_debug_impl_glMultiTexCoord1iv(GLenum arg0, const GLint * arg1) {    
      _pre_call_callback_gl("glMultiTexCoord1iv", (void*)glMultiTexCoord1iv, 2, arg0, arg1);
       glad_glMultiTexCoord1iv(arg0, arg1);
      _post_call_callback_gl("glMultiTexCoord1iv", (void*)glMultiTexCoord1iv, 2, arg0, arg1);
      
  }
  PFNGLMULTITEXCOORD1IVPROC glad_debug_glMultiTexCoord1iv = glad_debug_impl_glMultiTexCoord1iv;
  PFNGLMULTITEXCOORD1SPROC glad_glMultiTexCoord1s;
  void APIENTRY glad_debug_impl_glMultiTexCoord1s(GLenum arg0, GLshort arg1) {    
      _pre_call_callback_gl("glMultiTexCoord1s", (void*)glMultiTexCoord1s, 2, arg0, arg1);
       glad_glMultiTexCoord1s(arg0, arg1);
      _post_call_callback_gl("glMultiTexCoord1s", (void*)glMultiTexCoord1s, 2, arg0, arg1);
      
  }
  PFNGLMULTITEXCOORD1SPROC glad_debug_glMultiTexCoord1s = glad_debug_impl_glMultiTexCoord1s;
  PFNGLMULTITEXCOORD1SVPROC glad_glMultiTexCoord1sv;
  void APIENTRY glad_debug_impl_glMultiTexCoord1sv(GLenum arg0, const GLshort * arg1) {    
      _pre_call_callback_gl("glMultiTexCoord1sv", (void*)glMultiTexCoord1sv, 2, arg0, arg1);
       glad_glMultiTexCoord1sv(arg0, arg1);
      _post_call_callback_gl("glMultiTexCoord1sv", (void*)glMultiTexCoord1sv, 2, arg0, arg1);
      
  }
  PFNGLMULTITEXCOORD1SVPROC glad_debug_glMultiTexCoord1sv = glad_debug_impl_glMultiTexCoord1sv;
  PFNGLMULTITEXCOORD2DPROC glad_glMultiTexCoord2d;
  void APIENTRY glad_debug_impl_glMultiTexCoord2d(GLenum arg0, GLdouble arg1, GLdouble arg2) {    
      _pre_call_callback_gl("glMultiTexCoord2d", (void*)glMultiTexCoord2d, 3, arg0, arg1, arg2);
       glad_glMultiTexCoord2d(arg0, arg1, arg2);
      _post_call_callback_gl("glMultiTexCoord2d", (void*)glMultiTexCoord2d, 3, arg0, arg1, arg2);
      
  }
  PFNGLMULTITEXCOORD2DPROC glad_debug_glMultiTexCoord2d = glad_debug_impl_glMultiTexCoord2d;
  PFNGLMULTITEXCOORD2DVPROC glad_glMultiTexCoord2dv;
  void APIENTRY glad_debug_impl_glMultiTexCoord2dv(GLenum arg0, const GLdouble * arg1) {    
      _pre_call_callback_gl("glMultiTexCoord2dv", (void*)glMultiTexCoord2dv, 2, arg0, arg1);
       glad_glMultiTexCoord2dv(arg0, arg1);
      _post_call_callback_gl("glMultiTexCoord2dv", (void*)glMultiTexCoord2dv, 2, arg0, arg1);
      
  }
  PFNGLMULTITEXCOORD2DVPROC glad_debug_glMultiTexCoord2dv = glad_debug_impl_glMultiTexCoord2dv;
  PFNGLMULTITEXCOORD2FPROC glad_glMultiTexCoord2f;
  void APIENTRY glad_debug_impl_glMultiTexCoord2f(GLenum arg0, GLfloat arg1, GLfloat arg2) {    
      _pre_call_callback_gl("glMultiTexCoord2f", (void*)glMultiTexCoord2f, 3, arg0, arg1, arg2);
       glad_glMultiTexCoord2f(arg0, arg1, arg2);
      _post_call_callback_gl("glMultiTexCoord2f", (void*)glMultiTexCoord2f, 3, arg0, arg1, arg2);
      
  }
  PFNGLMULTITEXCOORD2FPROC glad_debug_glMultiTexCoord2f = glad_debug_impl_glMultiTexCoord2f;
  PFNGLMULTITEXCOORD2FVPROC glad_glMultiTexCoord2fv;
  void APIENTRY glad_debug_impl_glMultiTexCoord2fv(GLenum arg0, const GLfloat * arg1) {    
      _pre_call_callback_gl("glMultiTexCoord2fv", (void*)glMultiTexCoord2fv, 2, arg0, arg1);
       glad_glMultiTexCoord2fv(arg0, arg1);
      _post_call_callback_gl("glMultiTexCoord2fv", (void*)glMultiTexCoord2fv, 2, arg0, arg1);
      
  }
  PFNGLMULTITEXCOORD2FVPROC glad_debug_glMultiTexCoord2fv = glad_debug_impl_glMultiTexCoord2fv;
  PFNGLMULTITEXCOORD2IPROC glad_glMultiTexCoord2i;
  void APIENTRY glad_debug_impl_glMultiTexCoord2i(GLenum arg0, GLint arg1, GLint arg2) {    
      _pre_call_callback_gl("glMultiTexCoord2i", (void*)glMultiTexCoord2i, 3, arg0, arg1, arg2);
       glad_glMultiTexCoord2i(arg0, arg1, arg2);
      _post_call_callback_gl("glMultiTexCoord2i", (void*)glMultiTexCoord2i, 3, arg0, arg1, arg2);
      
  }
  PFNGLMULTITEXCOORD2IPROC glad_debug_glMultiTexCoord2i = glad_debug_impl_glMultiTexCoord2i;
  PFNGLMULTITEXCOORD2IVPROC glad_glMultiTexCoord2iv;
  void APIENTRY glad_debug_impl_glMultiTexCoord2iv(GLenum arg0, const GLint * arg1) {    
      _pre_call_callback_gl("glMultiTexCoord2iv", (void*)glMultiTexCoord2iv, 2, arg0, arg1);
       glad_glMultiTexCoord2iv(arg0, arg1);
      _post_call_callback_gl("glMultiTexCoord2iv", (void*)glMultiTexCoord2iv, 2, arg0, arg1);
      
  }
  PFNGLMULTITEXCOORD2IVPROC glad_debug_glMultiTexCoord2iv = glad_debug_impl_glMultiTexCoord2iv;
  PFNGLMULTITEXCOORD2SPROC glad_glMultiTexCoord2s;
  void APIENTRY glad_debug_impl_glMultiTexCoord2s(GLenum arg0, GLshort arg1, GLshort arg2) {    
      _pre_call_callback_gl("glMultiTexCoord2s", (void*)glMultiTexCoord2s, 3, arg0, arg1, arg2);
       glad_glMultiTexCoord2s(arg0, arg1, arg2);
      _post_call_callback_gl("glMultiTexCoord2s", (void*)glMultiTexCoord2s, 3, arg0, arg1, arg2);
      
  }
  PFNGLMULTITEXCOORD2SPROC glad_debug_glMultiTexCoord2s = glad_debug_impl_glMultiTexCoord2s;
  PFNGLMULTITEXCOORD2SVPROC glad_glMultiTexCoord2sv;
  void APIENTRY glad_debug_impl_glMultiTexCoord2sv(GLenum arg0, const GLshort * arg1) {    
      _pre_call_callback_gl("glMultiTexCoord2sv", (void*)glMultiTexCoord2sv, 2, arg0, arg1);
       glad_glMultiTexCoord2sv(arg0, arg1);
      _post_call_callback_gl("glMultiTexCoord2sv", (void*)glMultiTexCoord2sv, 2, arg0, arg1);
      
  }
  PFNGLMULTITEXCOORD2SVPROC glad_debug_glMultiTexCoord2sv = glad_debug_impl_glMultiTexCoord2sv;
  PFNGLMULTITEXCOORD3DPROC glad_glMultiTexCoord3d;
  void APIENTRY glad_debug_impl_glMultiTexCoord3d(GLenum arg0, GLdouble arg1, GLdouble arg2, GLdouble arg3) {    
      _pre_call_callback_gl("glMultiTexCoord3d", (void*)glMultiTexCoord3d, 4, arg0, arg1, arg2, arg3);
       glad_glMultiTexCoord3d(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glMultiTexCoord3d", (void*)glMultiTexCoord3d, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLMULTITEXCOORD3DPROC glad_debug_glMultiTexCoord3d = glad_debug_impl_glMultiTexCoord3d;
  PFNGLMULTITEXCOORD3DVPROC glad_glMultiTexCoord3dv;
  void APIENTRY glad_debug_impl_glMultiTexCoord3dv(GLenum arg0, const GLdouble * arg1) {    
      _pre_call_callback_gl("glMultiTexCoord3dv", (void*)glMultiTexCoord3dv, 2, arg0, arg1);
       glad_glMultiTexCoord3dv(arg0, arg1);
      _post_call_callback_gl("glMultiTexCoord3dv", (void*)glMultiTexCoord3dv, 2, arg0, arg1);
      
  }
  PFNGLMULTITEXCOORD3DVPROC glad_debug_glMultiTexCoord3dv = glad_debug_impl_glMultiTexCoord3dv;
  PFNGLMULTITEXCOORD3FPROC glad_glMultiTexCoord3f;
  void APIENTRY glad_debug_impl_glMultiTexCoord3f(GLenum arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3) {    
      _pre_call_callback_gl("glMultiTexCoord3f", (void*)glMultiTexCoord3f, 4, arg0, arg1, arg2, arg3);
       glad_glMultiTexCoord3f(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glMultiTexCoord3f", (void*)glMultiTexCoord3f, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLMULTITEXCOORD3FPROC glad_debug_glMultiTexCoord3f = glad_debug_impl_glMultiTexCoord3f;
  PFNGLMULTITEXCOORD3FVPROC glad_glMultiTexCoord3fv;
  void APIENTRY glad_debug_impl_glMultiTexCoord3fv(GLenum arg0, const GLfloat * arg1) {    
      _pre_call_callback_gl("glMultiTexCoord3fv", (void*)glMultiTexCoord3fv, 2, arg0, arg1);
       glad_glMultiTexCoord3fv(arg0, arg1);
      _post_call_callback_gl("glMultiTexCoord3fv", (void*)glMultiTexCoord3fv, 2, arg0, arg1);
      
  }
  PFNGLMULTITEXCOORD3FVPROC glad_debug_glMultiTexCoord3fv = glad_debug_impl_glMultiTexCoord3fv;
  PFNGLMULTITEXCOORD3IPROC glad_glMultiTexCoord3i;
  void APIENTRY glad_debug_impl_glMultiTexCoord3i(GLenum arg0, GLint arg1, GLint arg2, GLint arg3) {    
      _pre_call_callback_gl("glMultiTexCoord3i", (void*)glMultiTexCoord3i, 4, arg0, arg1, arg2, arg3);
       glad_glMultiTexCoord3i(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glMultiTexCoord3i", (void*)glMultiTexCoord3i, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLMULTITEXCOORD3IPROC glad_debug_glMultiTexCoord3i = glad_debug_impl_glMultiTexCoord3i;
  PFNGLMULTITEXCOORD3IVPROC glad_glMultiTexCoord3iv;
  void APIENTRY glad_debug_impl_glMultiTexCoord3iv(GLenum arg0, const GLint * arg1) {    
      _pre_call_callback_gl("glMultiTexCoord3iv", (void*)glMultiTexCoord3iv, 2, arg0, arg1);
       glad_glMultiTexCoord3iv(arg0, arg1);
      _post_call_callback_gl("glMultiTexCoord3iv", (void*)glMultiTexCoord3iv, 2, arg0, arg1);
      
  }
  PFNGLMULTITEXCOORD3IVPROC glad_debug_glMultiTexCoord3iv = glad_debug_impl_glMultiTexCoord3iv;
  PFNGLMULTITEXCOORD3SPROC glad_glMultiTexCoord3s;
  void APIENTRY glad_debug_impl_glMultiTexCoord3s(GLenum arg0, GLshort arg1, GLshort arg2, GLshort arg3) {    
      _pre_call_callback_gl("glMultiTexCoord3s", (void*)glMultiTexCoord3s, 4, arg0, arg1, arg2, arg3);
       glad_glMultiTexCoord3s(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glMultiTexCoord3s", (void*)glMultiTexCoord3s, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLMULTITEXCOORD3SPROC glad_debug_glMultiTexCoord3s = glad_debug_impl_glMultiTexCoord3s;
  PFNGLMULTITEXCOORD3SVPROC glad_glMultiTexCoord3sv;
  void APIENTRY glad_debug_impl_glMultiTexCoord3sv(GLenum arg0, const GLshort * arg1) {    
      _pre_call_callback_gl("glMultiTexCoord3sv", (void*)glMultiTexCoord3sv, 2, arg0, arg1);
       glad_glMultiTexCoord3sv(arg0, arg1);
      _post_call_callback_gl("glMultiTexCoord3sv", (void*)glMultiTexCoord3sv, 2, arg0, arg1);
      
  }
  PFNGLMULTITEXCOORD3SVPROC glad_debug_glMultiTexCoord3sv = glad_debug_impl_glMultiTexCoord3sv;
  PFNGLMULTITEXCOORD4DPROC glad_glMultiTexCoord4d;
  void APIENTRY glad_debug_impl_glMultiTexCoord4d(GLenum arg0, GLdouble arg1, GLdouble arg2, GLdouble arg3, GLdouble arg4) {    
      _pre_call_callback_gl("glMultiTexCoord4d", (void*)glMultiTexCoord4d, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glMultiTexCoord4d(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glMultiTexCoord4d", (void*)glMultiTexCoord4d, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLMULTITEXCOORD4DPROC glad_debug_glMultiTexCoord4d = glad_debug_impl_glMultiTexCoord4d;
  PFNGLMULTITEXCOORD4DVPROC glad_glMultiTexCoord4dv;
  void APIENTRY glad_debug_impl_glMultiTexCoord4dv(GLenum arg0, const GLdouble * arg1) {    
      _pre_call_callback_gl("glMultiTexCoord4dv", (void*)glMultiTexCoord4dv, 2, arg0, arg1);
       glad_glMultiTexCoord4dv(arg0, arg1);
      _post_call_callback_gl("glMultiTexCoord4dv", (void*)glMultiTexCoord4dv, 2, arg0, arg1);
      
  }
  PFNGLMULTITEXCOORD4DVPROC glad_debug_glMultiTexCoord4dv = glad_debug_impl_glMultiTexCoord4dv;
  PFNGLMULTITEXCOORD4FPROC glad_glMultiTexCoord4f;
  void APIENTRY glad_debug_impl_glMultiTexCoord4f(GLenum arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3, GLfloat arg4) {    
      _pre_call_callback_gl("glMultiTexCoord4f", (void*)glMultiTexCoord4f, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glMultiTexCoord4f(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glMultiTexCoord4f", (void*)glMultiTexCoord4f, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLMULTITEXCOORD4FPROC glad_debug_glMultiTexCoord4f = glad_debug_impl_glMultiTexCoord4f;
  PFNGLMULTITEXCOORD4FVPROC glad_glMultiTexCoord4fv;
  void APIENTRY glad_debug_impl_glMultiTexCoord4fv(GLenum arg0, const GLfloat * arg1) {    
      _pre_call_callback_gl("glMultiTexCoord4fv", (void*)glMultiTexCoord4fv, 2, arg0, arg1);
       glad_glMultiTexCoord4fv(arg0, arg1);
      _post_call_callback_gl("glMultiTexCoord4fv", (void*)glMultiTexCoord4fv, 2, arg0, arg1);
      
  }
  PFNGLMULTITEXCOORD4FVPROC glad_debug_glMultiTexCoord4fv = glad_debug_impl_glMultiTexCoord4fv;
  PFNGLMULTITEXCOORD4IPROC glad_glMultiTexCoord4i;
  void APIENTRY glad_debug_impl_glMultiTexCoord4i(GLenum arg0, GLint arg1, GLint arg2, GLint arg3, GLint arg4) {    
      _pre_call_callback_gl("glMultiTexCoord4i", (void*)glMultiTexCoord4i, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glMultiTexCoord4i(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glMultiTexCoord4i", (void*)glMultiTexCoord4i, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLMULTITEXCOORD4IPROC glad_debug_glMultiTexCoord4i = glad_debug_impl_glMultiTexCoord4i;
  PFNGLMULTITEXCOORD4IVPROC glad_glMultiTexCoord4iv;
  void APIENTRY glad_debug_impl_glMultiTexCoord4iv(GLenum arg0, const GLint * arg1) {    
      _pre_call_callback_gl("glMultiTexCoord4iv", (void*)glMultiTexCoord4iv, 2, arg0, arg1);
       glad_glMultiTexCoord4iv(arg0, arg1);
      _post_call_callback_gl("glMultiTexCoord4iv", (void*)glMultiTexCoord4iv, 2, arg0, arg1);
      
  }
  PFNGLMULTITEXCOORD4IVPROC glad_debug_glMultiTexCoord4iv = glad_debug_impl_glMultiTexCoord4iv;
  PFNGLMULTITEXCOORD4SPROC glad_glMultiTexCoord4s;
  void APIENTRY glad_debug_impl_glMultiTexCoord4s(GLenum arg0, GLshort arg1, GLshort arg2, GLshort arg3, GLshort arg4) {    
      _pre_call_callback_gl("glMultiTexCoord4s", (void*)glMultiTexCoord4s, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glMultiTexCoord4s(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glMultiTexCoord4s", (void*)glMultiTexCoord4s, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLMULTITEXCOORD4SPROC glad_debug_glMultiTexCoord4s = glad_debug_impl_glMultiTexCoord4s;
  PFNGLMULTITEXCOORD4SVPROC glad_glMultiTexCoord4sv;
  void APIENTRY glad_debug_impl_glMultiTexCoord4sv(GLenum arg0, const GLshort * arg1) {    
      _pre_call_callback_gl("glMultiTexCoord4sv", (void*)glMultiTexCoord4sv, 2, arg0, arg1);
       glad_glMultiTexCoord4sv(arg0, arg1);
      _post_call_callback_gl("glMultiTexCoord4sv", (void*)glMultiTexCoord4sv, 2, arg0, arg1);
      
  }
  PFNGLMULTITEXCOORD4SVPROC glad_debug_glMultiTexCoord4sv = glad_debug_impl_glMultiTexCoord4sv;
  PFNGLMULTITEXCOORDP1UIPROC glad_glMultiTexCoordP1ui;
  void APIENTRY glad_debug_impl_glMultiTexCoordP1ui(GLenum arg0, GLenum arg1, GLuint arg2) {    
      _pre_call_callback_gl("glMultiTexCoordP1ui", (void*)glMultiTexCoordP1ui, 3, arg0, arg1, arg2);
       glad_glMultiTexCoordP1ui(arg0, arg1, arg2);
      _post_call_callback_gl("glMultiTexCoordP1ui", (void*)glMultiTexCoordP1ui, 3, arg0, arg1, arg2);
      
  }
  PFNGLMULTITEXCOORDP1UIPROC glad_debug_glMultiTexCoordP1ui = glad_debug_impl_glMultiTexCoordP1ui;
  PFNGLMULTITEXCOORDP1UIVPROC glad_glMultiTexCoordP1uiv;
  void APIENTRY glad_debug_impl_glMultiTexCoordP1uiv(GLenum arg0, GLenum arg1, const GLuint * arg2) {    
      _pre_call_callback_gl("glMultiTexCoordP1uiv", (void*)glMultiTexCoordP1uiv, 3, arg0, arg1, arg2);
       glad_glMultiTexCoordP1uiv(arg0, arg1, arg2);
      _post_call_callback_gl("glMultiTexCoordP1uiv", (void*)glMultiTexCoordP1uiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLMULTITEXCOORDP1UIVPROC glad_debug_glMultiTexCoordP1uiv = glad_debug_impl_glMultiTexCoordP1uiv;
  PFNGLMULTITEXCOORDP2UIPROC glad_glMultiTexCoordP2ui;
  void APIENTRY glad_debug_impl_glMultiTexCoordP2ui(GLenum arg0, GLenum arg1, GLuint arg2) {    
      _pre_call_callback_gl("glMultiTexCoordP2ui", (void*)glMultiTexCoordP2ui, 3, arg0, arg1, arg2);
       glad_glMultiTexCoordP2ui(arg0, arg1, arg2);
      _post_call_callback_gl("glMultiTexCoordP2ui", (void*)glMultiTexCoordP2ui, 3, arg0, arg1, arg2);
      
  }
  PFNGLMULTITEXCOORDP2UIPROC glad_debug_glMultiTexCoordP2ui = glad_debug_impl_glMultiTexCoordP2ui;
  PFNGLMULTITEXCOORDP2UIVPROC glad_glMultiTexCoordP2uiv;
  void APIENTRY glad_debug_impl_glMultiTexCoordP2uiv(GLenum arg0, GLenum arg1, const GLuint * arg2) {    
      _pre_call_callback_gl("glMultiTexCoordP2uiv", (void*)glMultiTexCoordP2uiv, 3, arg0, arg1, arg2);
       glad_glMultiTexCoordP2uiv(arg0, arg1, arg2);
      _post_call_callback_gl("glMultiTexCoordP2uiv", (void*)glMultiTexCoordP2uiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLMULTITEXCOORDP2UIVPROC glad_debug_glMultiTexCoordP2uiv = glad_debug_impl_glMultiTexCoordP2uiv;
  PFNGLMULTITEXCOORDP3UIPROC glad_glMultiTexCoordP3ui;
  void APIENTRY glad_debug_impl_glMultiTexCoordP3ui(GLenum arg0, GLenum arg1, GLuint arg2) {    
      _pre_call_callback_gl("glMultiTexCoordP3ui", (void*)glMultiTexCoordP3ui, 3, arg0, arg1, arg2);
       glad_glMultiTexCoordP3ui(arg0, arg1, arg2);
      _post_call_callback_gl("glMultiTexCoordP3ui", (void*)glMultiTexCoordP3ui, 3, arg0, arg1, arg2);
      
  }
  PFNGLMULTITEXCOORDP3UIPROC glad_debug_glMultiTexCoordP3ui = glad_debug_impl_glMultiTexCoordP3ui;
  PFNGLMULTITEXCOORDP3UIVPROC glad_glMultiTexCoordP3uiv;
  void APIENTRY glad_debug_impl_glMultiTexCoordP3uiv(GLenum arg0, GLenum arg1, const GLuint * arg2) {    
      _pre_call_callback_gl("glMultiTexCoordP3uiv", (void*)glMultiTexCoordP3uiv, 3, arg0, arg1, arg2);
       glad_glMultiTexCoordP3uiv(arg0, arg1, arg2);
      _post_call_callback_gl("glMultiTexCoordP3uiv", (void*)glMultiTexCoordP3uiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLMULTITEXCOORDP3UIVPROC glad_debug_glMultiTexCoordP3uiv = glad_debug_impl_glMultiTexCoordP3uiv;
  PFNGLMULTITEXCOORDP4UIPROC glad_glMultiTexCoordP4ui;
  void APIENTRY glad_debug_impl_glMultiTexCoordP4ui(GLenum arg0, GLenum arg1, GLuint arg2) {    
      _pre_call_callback_gl("glMultiTexCoordP4ui", (void*)glMultiTexCoordP4ui, 3, arg0, arg1, arg2);
       glad_glMultiTexCoordP4ui(arg0, arg1, arg2);
      _post_call_callback_gl("glMultiTexCoordP4ui", (void*)glMultiTexCoordP4ui, 3, arg0, arg1, arg2);
      
  }
  PFNGLMULTITEXCOORDP4UIPROC glad_debug_glMultiTexCoordP4ui = glad_debug_impl_glMultiTexCoordP4ui;
  PFNGLMULTITEXCOORDP4UIVPROC glad_glMultiTexCoordP4uiv;
  void APIENTRY glad_debug_impl_glMultiTexCoordP4uiv(GLenum arg0, GLenum arg1, const GLuint * arg2) {    
      _pre_call_callback_gl("glMultiTexCoordP4uiv", (void*)glMultiTexCoordP4uiv, 3, arg0, arg1, arg2);
       glad_glMultiTexCoordP4uiv(arg0, arg1, arg2);
      _post_call_callback_gl("glMultiTexCoordP4uiv", (void*)glMultiTexCoordP4uiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLMULTITEXCOORDP4UIVPROC glad_debug_glMultiTexCoordP4uiv = glad_debug_impl_glMultiTexCoordP4uiv;
  PFNGLNEWLISTPROC glad_glNewList;
  void APIENTRY glad_debug_impl_glNewList(GLuint arg0, GLenum arg1) {    
      _pre_call_callback_gl("glNewList", (void*)glNewList, 2, arg0, arg1);
       glad_glNewList(arg0, arg1);
      _post_call_callback_gl("glNewList", (void*)glNewList, 2, arg0, arg1);
      
  }
  PFNGLNEWLISTPROC glad_debug_glNewList = glad_debug_impl_glNewList;
  PFNGLNORMAL3BPROC glad_glNormal3b;
  void APIENTRY glad_debug_impl_glNormal3b(GLbyte arg0, GLbyte arg1, GLbyte arg2) {    
      _pre_call_callback_gl("glNormal3b", (void*)glNormal3b, 3, arg0, arg1, arg2);
       glad_glNormal3b(arg0, arg1, arg2);
      _post_call_callback_gl("glNormal3b", (void*)glNormal3b, 3, arg0, arg1, arg2);
      
  }
  PFNGLNORMAL3BPROC glad_debug_glNormal3b = glad_debug_impl_glNormal3b;
  PFNGLNORMAL3BVPROC glad_glNormal3bv;
  void APIENTRY glad_debug_impl_glNormal3bv(const GLbyte * arg0) {    
      _pre_call_callback_gl("glNormal3bv", (void*)glNormal3bv, 1, arg0);
       glad_glNormal3bv(arg0);
      _post_call_callback_gl("glNormal3bv", (void*)glNormal3bv, 1, arg0);
      
  }
  PFNGLNORMAL3BVPROC glad_debug_glNormal3bv = glad_debug_impl_glNormal3bv;
  PFNGLNORMAL3DPROC glad_glNormal3d;
  void APIENTRY glad_debug_impl_glNormal3d(GLdouble arg0, GLdouble arg1, GLdouble arg2) {    
      _pre_call_callback_gl("glNormal3d", (void*)glNormal3d, 3, arg0, arg1, arg2);
       glad_glNormal3d(arg0, arg1, arg2);
      _post_call_callback_gl("glNormal3d", (void*)glNormal3d, 3, arg0, arg1, arg2);
      
  }
  PFNGLNORMAL3DPROC glad_debug_glNormal3d = glad_debug_impl_glNormal3d;
  PFNGLNORMAL3DVPROC glad_glNormal3dv;
  void APIENTRY glad_debug_impl_glNormal3dv(const GLdouble * arg0) {    
      _pre_call_callback_gl("glNormal3dv", (void*)glNormal3dv, 1, arg0);
       glad_glNormal3dv(arg0);
      _post_call_callback_gl("glNormal3dv", (void*)glNormal3dv, 1, arg0);
      
  }
  PFNGLNORMAL3DVPROC glad_debug_glNormal3dv = glad_debug_impl_glNormal3dv;
  PFNGLNORMAL3FPROC glad_glNormal3f;
  void APIENTRY glad_debug_impl_glNormal3f(GLfloat arg0, GLfloat arg1, GLfloat arg2) {    
      _pre_call_callback_gl("glNormal3f", (void*)glNormal3f, 3, arg0, arg1, arg2);
       glad_glNormal3f(arg0, arg1, arg2);
      _post_call_callback_gl("glNormal3f", (void*)glNormal3f, 3, arg0, arg1, arg2);
      
  }
  PFNGLNORMAL3FPROC glad_debug_glNormal3f = glad_debug_impl_glNormal3f;
  PFNGLNORMAL3FVPROC glad_glNormal3fv;
  void APIENTRY glad_debug_impl_glNormal3fv(const GLfloat * arg0) {    
      _pre_call_callback_gl("glNormal3fv", (void*)glNormal3fv, 1, arg0);
       glad_glNormal3fv(arg0);
      _post_call_callback_gl("glNormal3fv", (void*)glNormal3fv, 1, arg0);
      
  }
  PFNGLNORMAL3FVPROC glad_debug_glNormal3fv = glad_debug_impl_glNormal3fv;
  PFNGLNORMAL3IPROC glad_glNormal3i;
  void APIENTRY glad_debug_impl_glNormal3i(GLint arg0, GLint arg1, GLint arg2) {    
      _pre_call_callback_gl("glNormal3i", (void*)glNormal3i, 3, arg0, arg1, arg2);
       glad_glNormal3i(arg0, arg1, arg2);
      _post_call_callback_gl("glNormal3i", (void*)glNormal3i, 3, arg0, arg1, arg2);
      
  }
  PFNGLNORMAL3IPROC glad_debug_glNormal3i = glad_debug_impl_glNormal3i;
  PFNGLNORMAL3IVPROC glad_glNormal3iv;
  void APIENTRY glad_debug_impl_glNormal3iv(const GLint * arg0) {    
      _pre_call_callback_gl("glNormal3iv", (void*)glNormal3iv, 1, arg0);
       glad_glNormal3iv(arg0);
      _post_call_callback_gl("glNormal3iv", (void*)glNormal3iv, 1, arg0);
      
  }
  PFNGLNORMAL3IVPROC glad_debug_glNormal3iv = glad_debug_impl_glNormal3iv;
  PFNGLNORMAL3SPROC glad_glNormal3s;
  void APIENTRY glad_debug_impl_glNormal3s(GLshort arg0, GLshort arg1, GLshort arg2) {    
      _pre_call_callback_gl("glNormal3s", (void*)glNormal3s, 3, arg0, arg1, arg2);
       glad_glNormal3s(arg0, arg1, arg2);
      _post_call_callback_gl("glNormal3s", (void*)glNormal3s, 3, arg0, arg1, arg2);
      
  }
  PFNGLNORMAL3SPROC glad_debug_glNormal3s = glad_debug_impl_glNormal3s;
  PFNGLNORMAL3SVPROC glad_glNormal3sv;
  void APIENTRY glad_debug_impl_glNormal3sv(const GLshort * arg0) {    
      _pre_call_callback_gl("glNormal3sv", (void*)glNormal3sv, 1, arg0);
       glad_glNormal3sv(arg0);
      _post_call_callback_gl("glNormal3sv", (void*)glNormal3sv, 1, arg0);
      
  }
  PFNGLNORMAL3SVPROC glad_debug_glNormal3sv = glad_debug_impl_glNormal3sv;
  PFNGLNORMALP3UIPROC glad_glNormalP3ui;
  void APIENTRY glad_debug_impl_glNormalP3ui(GLenum arg0, GLuint arg1) {    
      _pre_call_callback_gl("glNormalP3ui", (void*)glNormalP3ui, 2, arg0, arg1);
       glad_glNormalP3ui(arg0, arg1);
      _post_call_callback_gl("glNormalP3ui", (void*)glNormalP3ui, 2, arg0, arg1);
      
  }
  PFNGLNORMALP3UIPROC glad_debug_glNormalP3ui = glad_debug_impl_glNormalP3ui;
  PFNGLNORMALP3UIVPROC glad_glNormalP3uiv;
  void APIENTRY glad_debug_impl_glNormalP3uiv(GLenum arg0, const GLuint * arg1) {    
      _pre_call_callback_gl("glNormalP3uiv", (void*)glNormalP3uiv, 2, arg0, arg1);
       glad_glNormalP3uiv(arg0, arg1);
      _post_call_callback_gl("glNormalP3uiv", (void*)glNormalP3uiv, 2, arg0, arg1);
      
  }
  PFNGLNORMALP3UIVPROC glad_debug_glNormalP3uiv = glad_debug_impl_glNormalP3uiv;
  PFNGLNORMALPOINTERPROC glad_glNormalPointer;
  void APIENTRY glad_debug_impl_glNormalPointer(GLenum arg0, GLsizei arg1, const void * arg2) {    
      _pre_call_callback_gl("glNormalPointer", (void*)glNormalPointer, 3, arg0, arg1, arg2);
       glad_glNormalPointer(arg0, arg1, arg2);
      _post_call_callback_gl("glNormalPointer", (void*)glNormalPointer, 3, arg0, arg1, arg2);
      
  }
  PFNGLNORMALPOINTERPROC glad_debug_glNormalPointer = glad_debug_impl_glNormalPointer;
  PFNGLOBJECTLABELPROC glad_glObjectLabel;
  void APIENTRY glad_debug_impl_glObjectLabel(GLenum arg0, GLuint arg1, GLsizei arg2, const GLchar * arg3) {    
      _pre_call_callback_gl("glObjectLabel", (void*)glObjectLabel, 4, arg0, arg1, arg2, arg3);
       glad_glObjectLabel(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glObjectLabel", (void*)glObjectLabel, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLOBJECTLABELPROC glad_debug_glObjectLabel = glad_debug_impl_glObjectLabel;
  PFNGLOBJECTPTRLABELPROC glad_glObjectPtrLabel;
  void APIENTRY glad_debug_impl_glObjectPtrLabel(const void * arg0, GLsizei arg1, const GLchar * arg2) {    
      _pre_call_callback_gl("glObjectPtrLabel", (void*)glObjectPtrLabel, 3, arg0, arg1, arg2);
       glad_glObjectPtrLabel(arg0, arg1, arg2);
      _post_call_callback_gl("glObjectPtrLabel", (void*)glObjectPtrLabel, 3, arg0, arg1, arg2);
      
  }
  PFNGLOBJECTPTRLABELPROC glad_debug_glObjectPtrLabel = glad_debug_impl_glObjectPtrLabel;
  PFNGLORTHOPROC glad_glOrtho;
  void APIENTRY glad_debug_impl_glOrtho(GLdouble arg0, GLdouble arg1, GLdouble arg2, GLdouble arg3, GLdouble arg4, GLdouble arg5) {    
      _pre_call_callback_gl("glOrtho", (void*)glOrtho, 6, arg0, arg1, arg2, arg3, arg4, arg5);
       glad_glOrtho(arg0, arg1, arg2, arg3, arg4, arg5);
      _post_call_callback_gl("glOrtho", (void*)glOrtho, 6, arg0, arg1, arg2, arg3, arg4, arg5);
      
  }
  PFNGLORTHOPROC glad_debug_glOrtho = glad_debug_impl_glOrtho;
  PFNGLPASSTHROUGHPROC glad_glPassThrough;
  void APIENTRY glad_debug_impl_glPassThrough(GLfloat arg0) {    
      _pre_call_callback_gl("glPassThrough", (void*)glPassThrough, 1, arg0);
       glad_glPassThrough(arg0);
      _post_call_callback_gl("glPassThrough", (void*)glPassThrough, 1, arg0);
      
  }
  PFNGLPASSTHROUGHPROC glad_debug_glPassThrough = glad_debug_impl_glPassThrough;
  PFNGLPATCHPARAMETERFVPROC glad_glPatchParameterfv;
  void APIENTRY glad_debug_impl_glPatchParameterfv(GLenum arg0, const GLfloat * arg1) {    
      _pre_call_callback_gl("glPatchParameterfv", (void*)glPatchParameterfv, 2, arg0, arg1);
       glad_glPatchParameterfv(arg0, arg1);
      _post_call_callback_gl("glPatchParameterfv", (void*)glPatchParameterfv, 2, arg0, arg1);
      
  }
  PFNGLPATCHPARAMETERFVPROC glad_debug_glPatchParameterfv = glad_debug_impl_glPatchParameterfv;
  PFNGLPATCHPARAMETERIPROC glad_glPatchParameteri;
  void APIENTRY glad_debug_impl_glPatchParameteri(GLenum arg0, GLint arg1) {    
      _pre_call_callback_gl("glPatchParameteri", (void*)glPatchParameteri, 2, arg0, arg1);
       glad_glPatchParameteri(arg0, arg1);
      _post_call_callback_gl("glPatchParameteri", (void*)glPatchParameteri, 2, arg0, arg1);
      
  }
  PFNGLPATCHPARAMETERIPROC glad_debug_glPatchParameteri = glad_debug_impl_glPatchParameteri;
  PFNGLPAUSETRANSFORMFEEDBACKPROC glad_glPauseTransformFeedback;
  void APIENTRY glad_debug_impl_glPauseTransformFeedback(void) {    
      _pre_call_callback_gl("glPauseTransformFeedback", (void*)glPauseTransformFeedback, 0);
       glad_glPauseTransformFeedback();
      _post_call_callback_gl("glPauseTransformFeedback", (void*)glPauseTransformFeedback, 0);
      
  }
  PFNGLPAUSETRANSFORMFEEDBACKPROC glad_debug_glPauseTransformFeedback = glad_debug_impl_glPauseTransformFeedback;
  PFNGLPIXELMAPFVPROC glad_glPixelMapfv;
  void APIENTRY glad_debug_impl_glPixelMapfv(GLenum arg0, GLsizei arg1, const GLfloat * arg2) {    
      _pre_call_callback_gl("glPixelMapfv", (void*)glPixelMapfv, 3, arg0, arg1, arg2);
       glad_glPixelMapfv(arg0, arg1, arg2);
      _post_call_callback_gl("glPixelMapfv", (void*)glPixelMapfv, 3, arg0, arg1, arg2);
      
  }
  PFNGLPIXELMAPFVPROC glad_debug_glPixelMapfv = glad_debug_impl_glPixelMapfv;
  PFNGLPIXELMAPUIVPROC glad_glPixelMapuiv;
  void APIENTRY glad_debug_impl_glPixelMapuiv(GLenum arg0, GLsizei arg1, const GLuint * arg2) {    
      _pre_call_callback_gl("glPixelMapuiv", (void*)glPixelMapuiv, 3, arg0, arg1, arg2);
       glad_glPixelMapuiv(arg0, arg1, arg2);
      _post_call_callback_gl("glPixelMapuiv", (void*)glPixelMapuiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLPIXELMAPUIVPROC glad_debug_glPixelMapuiv = glad_debug_impl_glPixelMapuiv;
  PFNGLPIXELMAPUSVPROC glad_glPixelMapusv;
  void APIENTRY glad_debug_impl_glPixelMapusv(GLenum arg0, GLsizei arg1, const GLushort * arg2) {    
      _pre_call_callback_gl("glPixelMapusv", (void*)glPixelMapusv, 3, arg0, arg1, arg2);
       glad_glPixelMapusv(arg0, arg1, arg2);
      _post_call_callback_gl("glPixelMapusv", (void*)glPixelMapusv, 3, arg0, arg1, arg2);
      
  }
  PFNGLPIXELMAPUSVPROC glad_debug_glPixelMapusv = glad_debug_impl_glPixelMapusv;
  PFNGLPIXELSTOREFPROC glad_glPixelStoref;
  void APIENTRY glad_debug_impl_glPixelStoref(GLenum arg0, GLfloat arg1) {    
      _pre_call_callback_gl("glPixelStoref", (void*)glPixelStoref, 2, arg0, arg1);
       glad_glPixelStoref(arg0, arg1);
      _post_call_callback_gl("glPixelStoref", (void*)glPixelStoref, 2, arg0, arg1);
      
  }
  PFNGLPIXELSTOREFPROC glad_debug_glPixelStoref = glad_debug_impl_glPixelStoref;
  PFNGLPIXELSTOREIPROC glad_glPixelStorei;
  void APIENTRY glad_debug_impl_glPixelStorei(GLenum arg0, GLint arg1) {    
      _pre_call_callback_gl("glPixelStorei", (void*)glPixelStorei, 2, arg0, arg1);
       glad_glPixelStorei(arg0, arg1);
      _post_call_callback_gl("glPixelStorei", (void*)glPixelStorei, 2, arg0, arg1);
      
  }
  PFNGLPIXELSTOREIPROC glad_debug_glPixelStorei = glad_debug_impl_glPixelStorei;
  PFNGLPIXELTRANSFERFPROC glad_glPixelTransferf;
  void APIENTRY glad_debug_impl_glPixelTransferf(GLenum arg0, GLfloat arg1) {    
      _pre_call_callback_gl("glPixelTransferf", (void*)glPixelTransferf, 2, arg0, arg1);
       glad_glPixelTransferf(arg0, arg1);
      _post_call_callback_gl("glPixelTransferf", (void*)glPixelTransferf, 2, arg0, arg1);
      
  }
  PFNGLPIXELTRANSFERFPROC glad_debug_glPixelTransferf = glad_debug_impl_glPixelTransferf;
  PFNGLPIXELTRANSFERIPROC glad_glPixelTransferi;
  void APIENTRY glad_debug_impl_glPixelTransferi(GLenum arg0, GLint arg1) {    
      _pre_call_callback_gl("glPixelTransferi", (void*)glPixelTransferi, 2, arg0, arg1);
       glad_glPixelTransferi(arg0, arg1);
      _post_call_callback_gl("glPixelTransferi", (void*)glPixelTransferi, 2, arg0, arg1);
      
  }
  PFNGLPIXELTRANSFERIPROC glad_debug_glPixelTransferi = glad_debug_impl_glPixelTransferi;
  PFNGLPIXELZOOMPROC glad_glPixelZoom;
  void APIENTRY glad_debug_impl_glPixelZoom(GLfloat arg0, GLfloat arg1) {    
      _pre_call_callback_gl("glPixelZoom", (void*)glPixelZoom, 2, arg0, arg1);
       glad_glPixelZoom(arg0, arg1);
      _post_call_callback_gl("glPixelZoom", (void*)glPixelZoom, 2, arg0, arg1);
      
  }
  PFNGLPIXELZOOMPROC glad_debug_glPixelZoom = glad_debug_impl_glPixelZoom;
  PFNGLPOINTPARAMETERFPROC glad_glPointParameterf;
  void APIENTRY glad_debug_impl_glPointParameterf(GLenum arg0, GLfloat arg1) {    
      _pre_call_callback_gl("glPointParameterf", (void*)glPointParameterf, 2, arg0, arg1);
       glad_glPointParameterf(arg0, arg1);
      _post_call_callback_gl("glPointParameterf", (void*)glPointParameterf, 2, arg0, arg1);
      
  }
  PFNGLPOINTPARAMETERFPROC glad_debug_glPointParameterf = glad_debug_impl_glPointParameterf;
  PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv;
  void APIENTRY glad_debug_impl_glPointParameterfv(GLenum arg0, const GLfloat * arg1) {    
      _pre_call_callback_gl("glPointParameterfv", (void*)glPointParameterfv, 2, arg0, arg1);
       glad_glPointParameterfv(arg0, arg1);
      _post_call_callback_gl("glPointParameterfv", (void*)glPointParameterfv, 2, arg0, arg1);
      
  }
  PFNGLPOINTPARAMETERFVPROC glad_debug_glPointParameterfv = glad_debug_impl_glPointParameterfv;
  PFNGLPOINTPARAMETERIPROC glad_glPointParameteri;
  void APIENTRY glad_debug_impl_glPointParameteri(GLenum arg0, GLint arg1) {    
      _pre_call_callback_gl("glPointParameteri", (void*)glPointParameteri, 2, arg0, arg1);
       glad_glPointParameteri(arg0, arg1);
      _post_call_callback_gl("glPointParameteri", (void*)glPointParameteri, 2, arg0, arg1);
      
  }
  PFNGLPOINTPARAMETERIPROC glad_debug_glPointParameteri = glad_debug_impl_glPointParameteri;
  PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv;
  void APIENTRY glad_debug_impl_glPointParameteriv(GLenum arg0, const GLint * arg1) {    
      _pre_call_callback_gl("glPointParameteriv", (void*)glPointParameteriv, 2, arg0, arg1);
       glad_glPointParameteriv(arg0, arg1);
      _post_call_callback_gl("glPointParameteriv", (void*)glPointParameteriv, 2, arg0, arg1);
      
  }
  PFNGLPOINTPARAMETERIVPROC glad_debug_glPointParameteriv = glad_debug_impl_glPointParameteriv;
  PFNGLPOINTSIZEPROC glad_glPointSize;
  void APIENTRY glad_debug_impl_glPointSize(GLfloat arg0) {    
      _pre_call_callback_gl("glPointSize", (void*)glPointSize, 1, arg0);
       glad_glPointSize(arg0);
      _post_call_callback_gl("glPointSize", (void*)glPointSize, 1, arg0);
      
  }
  PFNGLPOINTSIZEPROC glad_debug_glPointSize = glad_debug_impl_glPointSize;
  PFNGLPOLYGONMODEPROC glad_glPolygonMode;
  void APIENTRY glad_debug_impl_glPolygonMode(GLenum arg0, GLenum arg1) {    
      _pre_call_callback_gl("glPolygonMode", (void*)glPolygonMode, 2, arg0, arg1);
       glad_glPolygonMode(arg0, arg1);
      _post_call_callback_gl("glPolygonMode", (void*)glPolygonMode, 2, arg0, arg1);
      
  }
  PFNGLPOLYGONMODEPROC glad_debug_glPolygonMode = glad_debug_impl_glPolygonMode;
  PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset;
  void APIENTRY glad_debug_impl_glPolygonOffset(GLfloat arg0, GLfloat arg1) {    
      _pre_call_callback_gl("glPolygonOffset", (void*)glPolygonOffset, 2, arg0, arg1);
       glad_glPolygonOffset(arg0, arg1);
      _post_call_callback_gl("glPolygonOffset", (void*)glPolygonOffset, 2, arg0, arg1);
      
  }
  PFNGLPOLYGONOFFSETPROC glad_debug_glPolygonOffset = glad_debug_impl_glPolygonOffset;
  PFNGLPOLYGONSTIPPLEPROC glad_glPolygonStipple;
  void APIENTRY glad_debug_impl_glPolygonStipple(const GLubyte * arg0) {    
      _pre_call_callback_gl("glPolygonStipple", (void*)glPolygonStipple, 1, arg0);
       glad_glPolygonStipple(arg0);
      _post_call_callback_gl("glPolygonStipple", (void*)glPolygonStipple, 1, arg0);
      
  }
  PFNGLPOLYGONSTIPPLEPROC glad_debug_glPolygonStipple = glad_debug_impl_glPolygonStipple;
  PFNGLPOPATTRIBPROC glad_glPopAttrib;
  void APIENTRY glad_debug_impl_glPopAttrib(void) {    
      _pre_call_callback_gl("glPopAttrib", (void*)glPopAttrib, 0);
       glad_glPopAttrib();
      _post_call_callback_gl("glPopAttrib", (void*)glPopAttrib, 0);
      
  }
  PFNGLPOPATTRIBPROC glad_debug_glPopAttrib = glad_debug_impl_glPopAttrib;
  PFNGLPOPCLIENTATTRIBPROC glad_glPopClientAttrib;
  void APIENTRY glad_debug_impl_glPopClientAttrib(void) {    
      _pre_call_callback_gl("glPopClientAttrib", (void*)glPopClientAttrib, 0);
       glad_glPopClientAttrib();
      _post_call_callback_gl("glPopClientAttrib", (void*)glPopClientAttrib, 0);
      
  }
  PFNGLPOPCLIENTATTRIBPROC glad_debug_glPopClientAttrib = glad_debug_impl_glPopClientAttrib;
  PFNGLPOPDEBUGGROUPPROC glad_glPopDebugGroup;
  void APIENTRY glad_debug_impl_glPopDebugGroup(void) {    
      _pre_call_callback_gl("glPopDebugGroup", (void*)glPopDebugGroup, 0);
       glad_glPopDebugGroup();
      _post_call_callback_gl("glPopDebugGroup", (void*)glPopDebugGroup, 0);
      
  }
  PFNGLPOPDEBUGGROUPPROC glad_debug_glPopDebugGroup = glad_debug_impl_glPopDebugGroup;
  PFNGLPOPMATRIXPROC glad_glPopMatrix;
  void APIENTRY glad_debug_impl_glPopMatrix(void) {    
      _pre_call_callback_gl("glPopMatrix", (void*)glPopMatrix, 0);
       glad_glPopMatrix();
      _post_call_callback_gl("glPopMatrix", (void*)glPopMatrix, 0);
      
  }
  PFNGLPOPMATRIXPROC glad_debug_glPopMatrix = glad_debug_impl_glPopMatrix;
  PFNGLPOPNAMEPROC glad_glPopName;
  void APIENTRY glad_debug_impl_glPopName(void) {    
      _pre_call_callback_gl("glPopName", (void*)glPopName, 0);
       glad_glPopName();
      _post_call_callback_gl("glPopName", (void*)glPopName, 0);
      
  }
  PFNGLPOPNAMEPROC glad_debug_glPopName = glad_debug_impl_glPopName;
  PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex;
  void APIENTRY glad_debug_impl_glPrimitiveRestartIndex(GLuint arg0) {    
      _pre_call_callback_gl("glPrimitiveRestartIndex", (void*)glPrimitiveRestartIndex, 1, arg0);
       glad_glPrimitiveRestartIndex(arg0);
      _post_call_callback_gl("glPrimitiveRestartIndex", (void*)glPrimitiveRestartIndex, 1, arg0);
      
  }
  PFNGLPRIMITIVERESTARTINDEXPROC glad_debug_glPrimitiveRestartIndex = glad_debug_impl_glPrimitiveRestartIndex;
  PFNGLPRIORITIZETEXTURESPROC glad_glPrioritizeTextures;
  void APIENTRY glad_debug_impl_glPrioritizeTextures(GLsizei arg0, const GLuint * arg1, const GLfloat * arg2) {    
      _pre_call_callback_gl("glPrioritizeTextures", (void*)glPrioritizeTextures, 3, arg0, arg1, arg2);
       glad_glPrioritizeTextures(arg0, arg1, arg2);
      _post_call_callback_gl("glPrioritizeTextures", (void*)glPrioritizeTextures, 3, arg0, arg1, arg2);
      
  }
  PFNGLPRIORITIZETEXTURESPROC glad_debug_glPrioritizeTextures = glad_debug_impl_glPrioritizeTextures;
  PFNGLPROGRAMBINARYPROC glad_glProgramBinary;
  void APIENTRY glad_debug_impl_glProgramBinary(GLuint arg0, GLenum arg1, const void * arg2, GLsizei arg3) {    
      _pre_call_callback_gl("glProgramBinary", (void*)glProgramBinary, 4, arg0, arg1, arg2, arg3);
       glad_glProgramBinary(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glProgramBinary", (void*)glProgramBinary, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLPROGRAMBINARYPROC glad_debug_glProgramBinary = glad_debug_impl_glProgramBinary;
  PFNGLPROGRAMPARAMETERIPROC glad_glProgramParameteri;
  void APIENTRY glad_debug_impl_glProgramParameteri(GLuint arg0, GLenum arg1, GLint arg2) {    
      _pre_call_callback_gl("glProgramParameteri", (void*)glProgramParameteri, 3, arg0, arg1, arg2);
       glad_glProgramParameteri(arg0, arg1, arg2);
      _post_call_callback_gl("glProgramParameteri", (void*)glProgramParameteri, 3, arg0, arg1, arg2);
      
  }
  PFNGLPROGRAMPARAMETERIPROC glad_debug_glProgramParameteri = glad_debug_impl_glProgramParameteri;
  PFNGLPROGRAMUNIFORM1DPROC glad_glProgramUniform1d;
  void APIENTRY glad_debug_impl_glProgramUniform1d(GLuint arg0, GLint arg1, GLdouble arg2) {    
      _pre_call_callback_gl("glProgramUniform1d", (void*)glProgramUniform1d, 3, arg0, arg1, arg2);
       glad_glProgramUniform1d(arg0, arg1, arg2);
      _post_call_callback_gl("glProgramUniform1d", (void*)glProgramUniform1d, 3, arg0, arg1, arg2);
      
  }
  PFNGLPROGRAMUNIFORM1DPROC glad_debug_glProgramUniform1d = glad_debug_impl_glProgramUniform1d;
  PFNGLPROGRAMUNIFORM1DVPROC glad_glProgramUniform1dv;
  void APIENTRY glad_debug_impl_glProgramUniform1dv(GLuint arg0, GLint arg1, GLsizei arg2, const GLdouble * arg3) {    
      _pre_call_callback_gl("glProgramUniform1dv", (void*)glProgramUniform1dv, 4, arg0, arg1, arg2, arg3);
       glad_glProgramUniform1dv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glProgramUniform1dv", (void*)glProgramUniform1dv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLPROGRAMUNIFORM1DVPROC glad_debug_glProgramUniform1dv = glad_debug_impl_glProgramUniform1dv;
  PFNGLPROGRAMUNIFORM1FPROC glad_glProgramUniform1f;
  void APIENTRY glad_debug_impl_glProgramUniform1f(GLuint arg0, GLint arg1, GLfloat arg2) {    
      _pre_call_callback_gl("glProgramUniform1f", (void*)glProgramUniform1f, 3, arg0, arg1, arg2);
       glad_glProgramUniform1f(arg0, arg1, arg2);
      _post_call_callback_gl("glProgramUniform1f", (void*)glProgramUniform1f, 3, arg0, arg1, arg2);
      
  }
  PFNGLPROGRAMUNIFORM1FPROC glad_debug_glProgramUniform1f = glad_debug_impl_glProgramUniform1f;
  PFNGLPROGRAMUNIFORM1FVPROC glad_glProgramUniform1fv;
  void APIENTRY glad_debug_impl_glProgramUniform1fv(GLuint arg0, GLint arg1, GLsizei arg2, const GLfloat * arg3) {    
      _pre_call_callback_gl("glProgramUniform1fv", (void*)glProgramUniform1fv, 4, arg0, arg1, arg2, arg3);
       glad_glProgramUniform1fv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glProgramUniform1fv", (void*)glProgramUniform1fv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLPROGRAMUNIFORM1FVPROC glad_debug_glProgramUniform1fv = glad_debug_impl_glProgramUniform1fv;
  PFNGLPROGRAMUNIFORM1IPROC glad_glProgramUniform1i;
  void APIENTRY glad_debug_impl_glProgramUniform1i(GLuint arg0, GLint arg1, GLint arg2) {    
      _pre_call_callback_gl("glProgramUniform1i", (void*)glProgramUniform1i, 3, arg0, arg1, arg2);
       glad_glProgramUniform1i(arg0, arg1, arg2);
      _post_call_callback_gl("glProgramUniform1i", (void*)glProgramUniform1i, 3, arg0, arg1, arg2);
      
  }
  PFNGLPROGRAMUNIFORM1IPROC glad_debug_glProgramUniform1i = glad_debug_impl_glProgramUniform1i;
  PFNGLPROGRAMUNIFORM1IVPROC glad_glProgramUniform1iv;
  void APIENTRY glad_debug_impl_glProgramUniform1iv(GLuint arg0, GLint arg1, GLsizei arg2, const GLint * arg3) {    
      _pre_call_callback_gl("glProgramUniform1iv", (void*)glProgramUniform1iv, 4, arg0, arg1, arg2, arg3);
       glad_glProgramUniform1iv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glProgramUniform1iv", (void*)glProgramUniform1iv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLPROGRAMUNIFORM1IVPROC glad_debug_glProgramUniform1iv = glad_debug_impl_glProgramUniform1iv;
  PFNGLPROGRAMUNIFORM1UIPROC glad_glProgramUniform1ui;
  void APIENTRY glad_debug_impl_glProgramUniform1ui(GLuint arg0, GLint arg1, GLuint arg2) {    
      _pre_call_callback_gl("glProgramUniform1ui", (void*)glProgramUniform1ui, 3, arg0, arg1, arg2);
       glad_glProgramUniform1ui(arg0, arg1, arg2);
      _post_call_callback_gl("glProgramUniform1ui", (void*)glProgramUniform1ui, 3, arg0, arg1, arg2);
      
  }
  PFNGLPROGRAMUNIFORM1UIPROC glad_debug_glProgramUniform1ui = glad_debug_impl_glProgramUniform1ui;
  PFNGLPROGRAMUNIFORM1UIVPROC glad_glProgramUniform1uiv;
  void APIENTRY glad_debug_impl_glProgramUniform1uiv(GLuint arg0, GLint arg1, GLsizei arg2, const GLuint * arg3) {    
      _pre_call_callback_gl("glProgramUniform1uiv", (void*)glProgramUniform1uiv, 4, arg0, arg1, arg2, arg3);
       glad_glProgramUniform1uiv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glProgramUniform1uiv", (void*)glProgramUniform1uiv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLPROGRAMUNIFORM1UIVPROC glad_debug_glProgramUniform1uiv = glad_debug_impl_glProgramUniform1uiv;
  PFNGLPROGRAMUNIFORM2DPROC glad_glProgramUniform2d;
  void APIENTRY glad_debug_impl_glProgramUniform2d(GLuint arg0, GLint arg1, GLdouble arg2, GLdouble arg3) {    
      _pre_call_callback_gl("glProgramUniform2d", (void*)glProgramUniform2d, 4, arg0, arg1, arg2, arg3);
       glad_glProgramUniform2d(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glProgramUniform2d", (void*)glProgramUniform2d, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLPROGRAMUNIFORM2DPROC glad_debug_glProgramUniform2d = glad_debug_impl_glProgramUniform2d;
  PFNGLPROGRAMUNIFORM2DVPROC glad_glProgramUniform2dv;
  void APIENTRY glad_debug_impl_glProgramUniform2dv(GLuint arg0, GLint arg1, GLsizei arg2, const GLdouble * arg3) {    
      _pre_call_callback_gl("glProgramUniform2dv", (void*)glProgramUniform2dv, 4, arg0, arg1, arg2, arg3);
       glad_glProgramUniform2dv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glProgramUniform2dv", (void*)glProgramUniform2dv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLPROGRAMUNIFORM2DVPROC glad_debug_glProgramUniform2dv = glad_debug_impl_glProgramUniform2dv;
  PFNGLPROGRAMUNIFORM2FPROC glad_glProgramUniform2f;
  void APIENTRY glad_debug_impl_glProgramUniform2f(GLuint arg0, GLint arg1, GLfloat arg2, GLfloat arg3) {    
      _pre_call_callback_gl("glProgramUniform2f", (void*)glProgramUniform2f, 4, arg0, arg1, arg2, arg3);
       glad_glProgramUniform2f(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glProgramUniform2f", (void*)glProgramUniform2f, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLPROGRAMUNIFORM2FPROC glad_debug_glProgramUniform2f = glad_debug_impl_glProgramUniform2f;
  PFNGLPROGRAMUNIFORM2FVPROC glad_glProgramUniform2fv;
  void APIENTRY glad_debug_impl_glProgramUniform2fv(GLuint arg0, GLint arg1, GLsizei arg2, const GLfloat * arg3) {    
      _pre_call_callback_gl("glProgramUniform2fv", (void*)glProgramUniform2fv, 4, arg0, arg1, arg2, arg3);
       glad_glProgramUniform2fv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glProgramUniform2fv", (void*)glProgramUniform2fv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLPROGRAMUNIFORM2FVPROC glad_debug_glProgramUniform2fv = glad_debug_impl_glProgramUniform2fv;
  PFNGLPROGRAMUNIFORM2IPROC glad_glProgramUniform2i;
  void APIENTRY glad_debug_impl_glProgramUniform2i(GLuint arg0, GLint arg1, GLint arg2, GLint arg3) {    
      _pre_call_callback_gl("glProgramUniform2i", (void*)glProgramUniform2i, 4, arg0, arg1, arg2, arg3);
       glad_glProgramUniform2i(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glProgramUniform2i", (void*)glProgramUniform2i, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLPROGRAMUNIFORM2IPROC glad_debug_glProgramUniform2i = glad_debug_impl_glProgramUniform2i;
  PFNGLPROGRAMUNIFORM2IVPROC glad_glProgramUniform2iv;
  void APIENTRY glad_debug_impl_glProgramUniform2iv(GLuint arg0, GLint arg1, GLsizei arg2, const GLint * arg3) {    
      _pre_call_callback_gl("glProgramUniform2iv", (void*)glProgramUniform2iv, 4, arg0, arg1, arg2, arg3);
       glad_glProgramUniform2iv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glProgramUniform2iv", (void*)glProgramUniform2iv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLPROGRAMUNIFORM2IVPROC glad_debug_glProgramUniform2iv = glad_debug_impl_glProgramUniform2iv;
  PFNGLPROGRAMUNIFORM2UIPROC glad_glProgramUniform2ui;
  void APIENTRY glad_debug_impl_glProgramUniform2ui(GLuint arg0, GLint arg1, GLuint arg2, GLuint arg3) {    
      _pre_call_callback_gl("glProgramUniform2ui", (void*)glProgramUniform2ui, 4, arg0, arg1, arg2, arg3);
       glad_glProgramUniform2ui(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glProgramUniform2ui", (void*)glProgramUniform2ui, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLPROGRAMUNIFORM2UIPROC glad_debug_glProgramUniform2ui = glad_debug_impl_glProgramUniform2ui;
  PFNGLPROGRAMUNIFORM2UIVPROC glad_glProgramUniform2uiv;
  void APIENTRY glad_debug_impl_glProgramUniform2uiv(GLuint arg0, GLint arg1, GLsizei arg2, const GLuint * arg3) {    
      _pre_call_callback_gl("glProgramUniform2uiv", (void*)glProgramUniform2uiv, 4, arg0, arg1, arg2, arg3);
       glad_glProgramUniform2uiv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glProgramUniform2uiv", (void*)glProgramUniform2uiv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLPROGRAMUNIFORM2UIVPROC glad_debug_glProgramUniform2uiv = glad_debug_impl_glProgramUniform2uiv;
  PFNGLPROGRAMUNIFORM3DPROC glad_glProgramUniform3d;
  void APIENTRY glad_debug_impl_glProgramUniform3d(GLuint arg0, GLint arg1, GLdouble arg2, GLdouble arg3, GLdouble arg4) {    
      _pre_call_callback_gl("glProgramUniform3d", (void*)glProgramUniform3d, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glProgramUniform3d(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glProgramUniform3d", (void*)glProgramUniform3d, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLPROGRAMUNIFORM3DPROC glad_debug_glProgramUniform3d = glad_debug_impl_glProgramUniform3d;
  PFNGLPROGRAMUNIFORM3DVPROC glad_glProgramUniform3dv;
  void APIENTRY glad_debug_impl_glProgramUniform3dv(GLuint arg0, GLint arg1, GLsizei arg2, const GLdouble * arg3) {    
      _pre_call_callback_gl("glProgramUniform3dv", (void*)glProgramUniform3dv, 4, arg0, arg1, arg2, arg3);
       glad_glProgramUniform3dv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glProgramUniform3dv", (void*)glProgramUniform3dv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLPROGRAMUNIFORM3DVPROC glad_debug_glProgramUniform3dv = glad_debug_impl_glProgramUniform3dv;
  PFNGLPROGRAMUNIFORM3FPROC glad_glProgramUniform3f;
  void APIENTRY glad_debug_impl_glProgramUniform3f(GLuint arg0, GLint arg1, GLfloat arg2, GLfloat arg3, GLfloat arg4) {    
      _pre_call_callback_gl("glProgramUniform3f", (void*)glProgramUniform3f, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glProgramUniform3f(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glProgramUniform3f", (void*)glProgramUniform3f, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLPROGRAMUNIFORM3FPROC glad_debug_glProgramUniform3f = glad_debug_impl_glProgramUniform3f;
  PFNGLPROGRAMUNIFORM3FVPROC glad_glProgramUniform3fv;
  void APIENTRY glad_debug_impl_glProgramUniform3fv(GLuint arg0, GLint arg1, GLsizei arg2, const GLfloat * arg3) {    
      _pre_call_callback_gl("glProgramUniform3fv", (void*)glProgramUniform3fv, 4, arg0, arg1, arg2, arg3);
       glad_glProgramUniform3fv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glProgramUniform3fv", (void*)glProgramUniform3fv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLPROGRAMUNIFORM3FVPROC glad_debug_glProgramUniform3fv = glad_debug_impl_glProgramUniform3fv;
  PFNGLPROGRAMUNIFORM3IPROC glad_glProgramUniform3i;
  void APIENTRY glad_debug_impl_glProgramUniform3i(GLuint arg0, GLint arg1, GLint arg2, GLint arg3, GLint arg4) {    
      _pre_call_callback_gl("glProgramUniform3i", (void*)glProgramUniform3i, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glProgramUniform3i(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glProgramUniform3i", (void*)glProgramUniform3i, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLPROGRAMUNIFORM3IPROC glad_debug_glProgramUniform3i = glad_debug_impl_glProgramUniform3i;
  PFNGLPROGRAMUNIFORM3IVPROC glad_glProgramUniform3iv;
  void APIENTRY glad_debug_impl_glProgramUniform3iv(GLuint arg0, GLint arg1, GLsizei arg2, const GLint * arg3) {    
      _pre_call_callback_gl("glProgramUniform3iv", (void*)glProgramUniform3iv, 4, arg0, arg1, arg2, arg3);
       glad_glProgramUniform3iv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glProgramUniform3iv", (void*)glProgramUniform3iv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLPROGRAMUNIFORM3IVPROC glad_debug_glProgramUniform3iv = glad_debug_impl_glProgramUniform3iv;
  PFNGLPROGRAMUNIFORM3UIPROC glad_glProgramUniform3ui;
  void APIENTRY glad_debug_impl_glProgramUniform3ui(GLuint arg0, GLint arg1, GLuint arg2, GLuint arg3, GLuint arg4) {    
      _pre_call_callback_gl("glProgramUniform3ui", (void*)glProgramUniform3ui, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glProgramUniform3ui(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glProgramUniform3ui", (void*)glProgramUniform3ui, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLPROGRAMUNIFORM3UIPROC glad_debug_glProgramUniform3ui = glad_debug_impl_glProgramUniform3ui;
  PFNGLPROGRAMUNIFORM3UIVPROC glad_glProgramUniform3uiv;
  void APIENTRY glad_debug_impl_glProgramUniform3uiv(GLuint arg0, GLint arg1, GLsizei arg2, const GLuint * arg3) {    
      _pre_call_callback_gl("glProgramUniform3uiv", (void*)glProgramUniform3uiv, 4, arg0, arg1, arg2, arg3);
       glad_glProgramUniform3uiv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glProgramUniform3uiv", (void*)glProgramUniform3uiv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLPROGRAMUNIFORM3UIVPROC glad_debug_glProgramUniform3uiv = glad_debug_impl_glProgramUniform3uiv;
  PFNGLPROGRAMUNIFORM4DPROC glad_glProgramUniform4d;
  void APIENTRY glad_debug_impl_glProgramUniform4d(GLuint arg0, GLint arg1, GLdouble arg2, GLdouble arg3, GLdouble arg4, GLdouble arg5) {    
      _pre_call_callback_gl("glProgramUniform4d", (void*)glProgramUniform4d, 6, arg0, arg1, arg2, arg3, arg4, arg5);
       glad_glProgramUniform4d(arg0, arg1, arg2, arg3, arg4, arg5);
      _post_call_callback_gl("glProgramUniform4d", (void*)glProgramUniform4d, 6, arg0, arg1, arg2, arg3, arg4, arg5);
      
  }
  PFNGLPROGRAMUNIFORM4DPROC glad_debug_glProgramUniform4d = glad_debug_impl_glProgramUniform4d;
  PFNGLPROGRAMUNIFORM4DVPROC glad_glProgramUniform4dv;
  void APIENTRY glad_debug_impl_glProgramUniform4dv(GLuint arg0, GLint arg1, GLsizei arg2, const GLdouble * arg3) {    
      _pre_call_callback_gl("glProgramUniform4dv", (void*)glProgramUniform4dv, 4, arg0, arg1, arg2, arg3);
       glad_glProgramUniform4dv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glProgramUniform4dv", (void*)glProgramUniform4dv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLPROGRAMUNIFORM4DVPROC glad_debug_glProgramUniform4dv = glad_debug_impl_glProgramUniform4dv;
  PFNGLPROGRAMUNIFORM4FPROC glad_glProgramUniform4f;
  void APIENTRY glad_debug_impl_glProgramUniform4f(GLuint arg0, GLint arg1, GLfloat arg2, GLfloat arg3, GLfloat arg4, GLfloat arg5) {    
      _pre_call_callback_gl("glProgramUniform4f", (void*)glProgramUniform4f, 6, arg0, arg1, arg2, arg3, arg4, arg5);
       glad_glProgramUniform4f(arg0, arg1, arg2, arg3, arg4, arg5);
      _post_call_callback_gl("glProgramUniform4f", (void*)glProgramUniform4f, 6, arg0, arg1, arg2, arg3, arg4, arg5);
      
  }
  PFNGLPROGRAMUNIFORM4FPROC glad_debug_glProgramUniform4f = glad_debug_impl_glProgramUniform4f;
  PFNGLPROGRAMUNIFORM4FVPROC glad_glProgramUniform4fv;
  void APIENTRY glad_debug_impl_glProgramUniform4fv(GLuint arg0, GLint arg1, GLsizei arg2, const GLfloat * arg3) {    
      _pre_call_callback_gl("glProgramUniform4fv", (void*)glProgramUniform4fv, 4, arg0, arg1, arg2, arg3);
       glad_glProgramUniform4fv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glProgramUniform4fv", (void*)glProgramUniform4fv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLPROGRAMUNIFORM4FVPROC glad_debug_glProgramUniform4fv = glad_debug_impl_glProgramUniform4fv;
  PFNGLPROGRAMUNIFORM4IPROC glad_glProgramUniform4i;
  void APIENTRY glad_debug_impl_glProgramUniform4i(GLuint arg0, GLint arg1, GLint arg2, GLint arg3, GLint arg4, GLint arg5) {    
      _pre_call_callback_gl("glProgramUniform4i", (void*)glProgramUniform4i, 6, arg0, arg1, arg2, arg3, arg4, arg5);
       glad_glProgramUniform4i(arg0, arg1, arg2, arg3, arg4, arg5);
      _post_call_callback_gl("glProgramUniform4i", (void*)glProgramUniform4i, 6, arg0, arg1, arg2, arg3, arg4, arg5);
      
  }
  PFNGLPROGRAMUNIFORM4IPROC glad_debug_glProgramUniform4i = glad_debug_impl_glProgramUniform4i;
  PFNGLPROGRAMUNIFORM4IVPROC glad_glProgramUniform4iv;
  void APIENTRY glad_debug_impl_glProgramUniform4iv(GLuint arg0, GLint arg1, GLsizei arg2, const GLint * arg3) {    
      _pre_call_callback_gl("glProgramUniform4iv", (void*)glProgramUniform4iv, 4, arg0, arg1, arg2, arg3);
       glad_glProgramUniform4iv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glProgramUniform4iv", (void*)glProgramUniform4iv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLPROGRAMUNIFORM4IVPROC glad_debug_glProgramUniform4iv = glad_debug_impl_glProgramUniform4iv;
  PFNGLPROGRAMUNIFORM4UIPROC glad_glProgramUniform4ui;
  void APIENTRY glad_debug_impl_glProgramUniform4ui(GLuint arg0, GLint arg1, GLuint arg2, GLuint arg3, GLuint arg4, GLuint arg5) {    
      _pre_call_callback_gl("glProgramUniform4ui", (void*)glProgramUniform4ui, 6, arg0, arg1, arg2, arg3, arg4, arg5);
       glad_glProgramUniform4ui(arg0, arg1, arg2, arg3, arg4, arg5);
      _post_call_callback_gl("glProgramUniform4ui", (void*)glProgramUniform4ui, 6, arg0, arg1, arg2, arg3, arg4, arg5);
      
  }
  PFNGLPROGRAMUNIFORM4UIPROC glad_debug_glProgramUniform4ui = glad_debug_impl_glProgramUniform4ui;
  PFNGLPROGRAMUNIFORM4UIVPROC glad_glProgramUniform4uiv;
  void APIENTRY glad_debug_impl_glProgramUniform4uiv(GLuint arg0, GLint arg1, GLsizei arg2, const GLuint * arg3) {    
      _pre_call_callback_gl("glProgramUniform4uiv", (void*)glProgramUniform4uiv, 4, arg0, arg1, arg2, arg3);
       glad_glProgramUniform4uiv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glProgramUniform4uiv", (void*)glProgramUniform4uiv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLPROGRAMUNIFORM4UIVPROC glad_debug_glProgramUniform4uiv = glad_debug_impl_glProgramUniform4uiv;
  PFNGLPROGRAMUNIFORMMATRIX2DVPROC glad_glProgramUniformMatrix2dv;
  void APIENTRY glad_debug_impl_glProgramUniformMatrix2dv(GLuint arg0, GLint arg1, GLsizei arg2, GLboolean arg3, const GLdouble * arg4) {    
      _pre_call_callback_gl("glProgramUniformMatrix2dv", (void*)glProgramUniformMatrix2dv, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glProgramUniformMatrix2dv(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glProgramUniformMatrix2dv", (void*)glProgramUniformMatrix2dv, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLPROGRAMUNIFORMMATRIX2DVPROC glad_debug_glProgramUniformMatrix2dv = glad_debug_impl_glProgramUniformMatrix2dv;
  PFNGLPROGRAMUNIFORMMATRIX2FVPROC glad_glProgramUniformMatrix2fv;
  void APIENTRY glad_debug_impl_glProgramUniformMatrix2fv(GLuint arg0, GLint arg1, GLsizei arg2, GLboolean arg3, const GLfloat * arg4) {    
      _pre_call_callback_gl("glProgramUniformMatrix2fv", (void*)glProgramUniformMatrix2fv, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glProgramUniformMatrix2fv(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glProgramUniformMatrix2fv", (void*)glProgramUniformMatrix2fv, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLPROGRAMUNIFORMMATRIX2FVPROC glad_debug_glProgramUniformMatrix2fv = glad_debug_impl_glProgramUniformMatrix2fv;
  PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC glad_glProgramUniformMatrix2x3dv;
  void APIENTRY glad_debug_impl_glProgramUniformMatrix2x3dv(GLuint arg0, GLint arg1, GLsizei arg2, GLboolean arg3, const GLdouble * arg4) {    
      _pre_call_callback_gl("glProgramUniformMatrix2x3dv", (void*)glProgramUniformMatrix2x3dv, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glProgramUniformMatrix2x3dv(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glProgramUniformMatrix2x3dv", (void*)glProgramUniformMatrix2x3dv, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC glad_debug_glProgramUniformMatrix2x3dv = glad_debug_impl_glProgramUniformMatrix2x3dv;
  PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC glad_glProgramUniformMatrix2x3fv;
  void APIENTRY glad_debug_impl_glProgramUniformMatrix2x3fv(GLuint arg0, GLint arg1, GLsizei arg2, GLboolean arg3, const GLfloat * arg4) {    
      _pre_call_callback_gl("glProgramUniformMatrix2x3fv", (void*)glProgramUniformMatrix2x3fv, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glProgramUniformMatrix2x3fv(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glProgramUniformMatrix2x3fv", (void*)glProgramUniformMatrix2x3fv, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC glad_debug_glProgramUniformMatrix2x3fv = glad_debug_impl_glProgramUniformMatrix2x3fv;
  PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC glad_glProgramUniformMatrix2x4dv;
  void APIENTRY glad_debug_impl_glProgramUniformMatrix2x4dv(GLuint arg0, GLint arg1, GLsizei arg2, GLboolean arg3, const GLdouble * arg4) {    
      _pre_call_callback_gl("glProgramUniformMatrix2x4dv", (void*)glProgramUniformMatrix2x4dv, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glProgramUniformMatrix2x4dv(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glProgramUniformMatrix2x4dv", (void*)glProgramUniformMatrix2x4dv, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC glad_debug_glProgramUniformMatrix2x4dv = glad_debug_impl_glProgramUniformMatrix2x4dv;
  PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC glad_glProgramUniformMatrix2x4fv;
  void APIENTRY glad_debug_impl_glProgramUniformMatrix2x4fv(GLuint arg0, GLint arg1, GLsizei arg2, GLboolean arg3, const GLfloat * arg4) {    
      _pre_call_callback_gl("glProgramUniformMatrix2x4fv", (void*)glProgramUniformMatrix2x4fv, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glProgramUniformMatrix2x4fv(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glProgramUniformMatrix2x4fv", (void*)glProgramUniformMatrix2x4fv, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC glad_debug_glProgramUniformMatrix2x4fv = glad_debug_impl_glProgramUniformMatrix2x4fv;
  PFNGLPROGRAMUNIFORMMATRIX3DVPROC glad_glProgramUniformMatrix3dv;
  void APIENTRY glad_debug_impl_glProgramUniformMatrix3dv(GLuint arg0, GLint arg1, GLsizei arg2, GLboolean arg3, const GLdouble * arg4) {    
      _pre_call_callback_gl("glProgramUniformMatrix3dv", (void*)glProgramUniformMatrix3dv, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glProgramUniformMatrix3dv(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glProgramUniformMatrix3dv", (void*)glProgramUniformMatrix3dv, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLPROGRAMUNIFORMMATRIX3DVPROC glad_debug_glProgramUniformMatrix3dv = glad_debug_impl_glProgramUniformMatrix3dv;
  PFNGLPROGRAMUNIFORMMATRIX3FVPROC glad_glProgramUniformMatrix3fv;
  void APIENTRY glad_debug_impl_glProgramUniformMatrix3fv(GLuint arg0, GLint arg1, GLsizei arg2, GLboolean arg3, const GLfloat * arg4) {    
      _pre_call_callback_gl("glProgramUniformMatrix3fv", (void*)glProgramUniformMatrix3fv, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glProgramUniformMatrix3fv(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glProgramUniformMatrix3fv", (void*)glProgramUniformMatrix3fv, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLPROGRAMUNIFORMMATRIX3FVPROC glad_debug_glProgramUniformMatrix3fv = glad_debug_impl_glProgramUniformMatrix3fv;
  PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC glad_glProgramUniformMatrix3x2dv;
  void APIENTRY glad_debug_impl_glProgramUniformMatrix3x2dv(GLuint arg0, GLint arg1, GLsizei arg2, GLboolean arg3, const GLdouble * arg4) {    
      _pre_call_callback_gl("glProgramUniformMatrix3x2dv", (void*)glProgramUniformMatrix3x2dv, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glProgramUniformMatrix3x2dv(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glProgramUniformMatrix3x2dv", (void*)glProgramUniformMatrix3x2dv, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC glad_debug_glProgramUniformMatrix3x2dv = glad_debug_impl_glProgramUniformMatrix3x2dv;
  PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC glad_glProgramUniformMatrix3x2fv;
  void APIENTRY glad_debug_impl_glProgramUniformMatrix3x2fv(GLuint arg0, GLint arg1, GLsizei arg2, GLboolean arg3, const GLfloat * arg4) {    
      _pre_call_callback_gl("glProgramUniformMatrix3x2fv", (void*)glProgramUniformMatrix3x2fv, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glProgramUniformMatrix3x2fv(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glProgramUniformMatrix3x2fv", (void*)glProgramUniformMatrix3x2fv, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC glad_debug_glProgramUniformMatrix3x2fv = glad_debug_impl_glProgramUniformMatrix3x2fv;
  PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC glad_glProgramUniformMatrix3x4dv;
  void APIENTRY glad_debug_impl_glProgramUniformMatrix3x4dv(GLuint arg0, GLint arg1, GLsizei arg2, GLboolean arg3, const GLdouble * arg4) {    
      _pre_call_callback_gl("glProgramUniformMatrix3x4dv", (void*)glProgramUniformMatrix3x4dv, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glProgramUniformMatrix3x4dv(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glProgramUniformMatrix3x4dv", (void*)glProgramUniformMatrix3x4dv, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC glad_debug_glProgramUniformMatrix3x4dv = glad_debug_impl_glProgramUniformMatrix3x4dv;
  PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC glad_glProgramUniformMatrix3x4fv;
  void APIENTRY glad_debug_impl_glProgramUniformMatrix3x4fv(GLuint arg0, GLint arg1, GLsizei arg2, GLboolean arg3, const GLfloat * arg4) {    
      _pre_call_callback_gl("glProgramUniformMatrix3x4fv", (void*)glProgramUniformMatrix3x4fv, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glProgramUniformMatrix3x4fv(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glProgramUniformMatrix3x4fv", (void*)glProgramUniformMatrix3x4fv, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC glad_debug_glProgramUniformMatrix3x4fv = glad_debug_impl_glProgramUniformMatrix3x4fv;
  PFNGLPROGRAMUNIFORMMATRIX4DVPROC glad_glProgramUniformMatrix4dv;
  void APIENTRY glad_debug_impl_glProgramUniformMatrix4dv(GLuint arg0, GLint arg1, GLsizei arg2, GLboolean arg3, const GLdouble * arg4) {    
      _pre_call_callback_gl("glProgramUniformMatrix4dv", (void*)glProgramUniformMatrix4dv, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glProgramUniformMatrix4dv(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glProgramUniformMatrix4dv", (void*)glProgramUniformMatrix4dv, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLPROGRAMUNIFORMMATRIX4DVPROC glad_debug_glProgramUniformMatrix4dv = glad_debug_impl_glProgramUniformMatrix4dv;
  PFNGLPROGRAMUNIFORMMATRIX4FVPROC glad_glProgramUniformMatrix4fv;
  void APIENTRY glad_debug_impl_glProgramUniformMatrix4fv(GLuint arg0, GLint arg1, GLsizei arg2, GLboolean arg3, const GLfloat * arg4) {    
      _pre_call_callback_gl("glProgramUniformMatrix4fv", (void*)glProgramUniformMatrix4fv, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glProgramUniformMatrix4fv(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glProgramUniformMatrix4fv", (void*)glProgramUniformMatrix4fv, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLPROGRAMUNIFORMMATRIX4FVPROC glad_debug_glProgramUniformMatrix4fv = glad_debug_impl_glProgramUniformMatrix4fv;
  PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC glad_glProgramUniformMatrix4x2dv;
  void APIENTRY glad_debug_impl_glProgramUniformMatrix4x2dv(GLuint arg0, GLint arg1, GLsizei arg2, GLboolean arg3, const GLdouble * arg4) {    
      _pre_call_callback_gl("glProgramUniformMatrix4x2dv", (void*)glProgramUniformMatrix4x2dv, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glProgramUniformMatrix4x2dv(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glProgramUniformMatrix4x2dv", (void*)glProgramUniformMatrix4x2dv, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC glad_debug_glProgramUniformMatrix4x2dv = glad_debug_impl_glProgramUniformMatrix4x2dv;
  PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC glad_glProgramUniformMatrix4x2fv;
  void APIENTRY glad_debug_impl_glProgramUniformMatrix4x2fv(GLuint arg0, GLint arg1, GLsizei arg2, GLboolean arg3, const GLfloat * arg4) {    
      _pre_call_callback_gl("glProgramUniformMatrix4x2fv", (void*)glProgramUniformMatrix4x2fv, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glProgramUniformMatrix4x2fv(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glProgramUniformMatrix4x2fv", (void*)glProgramUniformMatrix4x2fv, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC glad_debug_glProgramUniformMatrix4x2fv = glad_debug_impl_glProgramUniformMatrix4x2fv;
  PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC glad_glProgramUniformMatrix4x3dv;
  void APIENTRY glad_debug_impl_glProgramUniformMatrix4x3dv(GLuint arg0, GLint arg1, GLsizei arg2, GLboolean arg3, const GLdouble * arg4) {    
      _pre_call_callback_gl("glProgramUniformMatrix4x3dv", (void*)glProgramUniformMatrix4x3dv, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glProgramUniformMatrix4x3dv(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glProgramUniformMatrix4x3dv", (void*)glProgramUniformMatrix4x3dv, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC glad_debug_glProgramUniformMatrix4x3dv = glad_debug_impl_glProgramUniformMatrix4x3dv;
  PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC glad_glProgramUniformMatrix4x3fv;
  void APIENTRY glad_debug_impl_glProgramUniformMatrix4x3fv(GLuint arg0, GLint arg1, GLsizei arg2, GLboolean arg3, const GLfloat * arg4) {    
      _pre_call_callback_gl("glProgramUniformMatrix4x3fv", (void*)glProgramUniformMatrix4x3fv, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glProgramUniformMatrix4x3fv(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glProgramUniformMatrix4x3fv", (void*)glProgramUniformMatrix4x3fv, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC glad_debug_glProgramUniformMatrix4x3fv = glad_debug_impl_glProgramUniformMatrix4x3fv;
  PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex;
  void APIENTRY glad_debug_impl_glProvokingVertex(GLenum arg0) {    
      _pre_call_callback_gl("glProvokingVertex", (void*)glProvokingVertex, 1, arg0);
       glad_glProvokingVertex(arg0);
      _post_call_callback_gl("glProvokingVertex", (void*)glProvokingVertex, 1, arg0);
      
  }
  PFNGLPROVOKINGVERTEXPROC glad_debug_glProvokingVertex = glad_debug_impl_glProvokingVertex;
  PFNGLPUSHATTRIBPROC glad_glPushAttrib;
  void APIENTRY glad_debug_impl_glPushAttrib(GLbitfield arg0) {    
      _pre_call_callback_gl("glPushAttrib", (void*)glPushAttrib, 1, arg0);
       glad_glPushAttrib(arg0);
      _post_call_callback_gl("glPushAttrib", (void*)glPushAttrib, 1, arg0);
      
  }
  PFNGLPUSHATTRIBPROC glad_debug_glPushAttrib = glad_debug_impl_glPushAttrib;
  PFNGLPUSHCLIENTATTRIBPROC glad_glPushClientAttrib;
  void APIENTRY glad_debug_impl_glPushClientAttrib(GLbitfield arg0) {    
      _pre_call_callback_gl("glPushClientAttrib", (void*)glPushClientAttrib, 1, arg0);
       glad_glPushClientAttrib(arg0);
      _post_call_callback_gl("glPushClientAttrib", (void*)glPushClientAttrib, 1, arg0);
      
  }
  PFNGLPUSHCLIENTATTRIBPROC glad_debug_glPushClientAttrib = glad_debug_impl_glPushClientAttrib;
  PFNGLPUSHDEBUGGROUPPROC glad_glPushDebugGroup;
  void APIENTRY glad_debug_impl_glPushDebugGroup(GLenum arg0, GLuint arg1, GLsizei arg2, const GLchar * arg3) {    
      _pre_call_callback_gl("glPushDebugGroup", (void*)glPushDebugGroup, 4, arg0, arg1, arg2, arg3);
       glad_glPushDebugGroup(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glPushDebugGroup", (void*)glPushDebugGroup, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLPUSHDEBUGGROUPPROC glad_debug_glPushDebugGroup = glad_debug_impl_glPushDebugGroup;
  PFNGLPUSHMATRIXPROC glad_glPushMatrix;
  void APIENTRY glad_debug_impl_glPushMatrix(void) {    
      _pre_call_callback_gl("glPushMatrix", (void*)glPushMatrix, 0);
       glad_glPushMatrix();
      _post_call_callback_gl("glPushMatrix", (void*)glPushMatrix, 0);
      
  }
  PFNGLPUSHMATRIXPROC glad_debug_glPushMatrix = glad_debug_impl_glPushMatrix;
  PFNGLPUSHNAMEPROC glad_glPushName;
  void APIENTRY glad_debug_impl_glPushName(GLuint arg0) {    
      _pre_call_callback_gl("glPushName", (void*)glPushName, 1, arg0);
       glad_glPushName(arg0);
      _post_call_callback_gl("glPushName", (void*)glPushName, 1, arg0);
      
  }
  PFNGLPUSHNAMEPROC glad_debug_glPushName = glad_debug_impl_glPushName;
  PFNGLQUERYCOUNTERPROC glad_glQueryCounter;
  void APIENTRY glad_debug_impl_glQueryCounter(GLuint arg0, GLenum arg1) {    
      _pre_call_callback_gl("glQueryCounter", (void*)glQueryCounter, 2, arg0, arg1);
       glad_glQueryCounter(arg0, arg1);
      _post_call_callback_gl("glQueryCounter", (void*)glQueryCounter, 2, arg0, arg1);
      
  }
  PFNGLQUERYCOUNTERPROC glad_debug_glQueryCounter = glad_debug_impl_glQueryCounter;
  PFNGLRASTERPOS2DPROC glad_glRasterPos2d;
  void APIENTRY glad_debug_impl_glRasterPos2d(GLdouble arg0, GLdouble arg1) {    
      _pre_call_callback_gl("glRasterPos2d", (void*)glRasterPos2d, 2, arg0, arg1);
       glad_glRasterPos2d(arg0, arg1);
      _post_call_callback_gl("glRasterPos2d", (void*)glRasterPos2d, 2, arg0, arg1);
      
  }
  PFNGLRASTERPOS2DPROC glad_debug_glRasterPos2d = glad_debug_impl_glRasterPos2d;
  PFNGLRASTERPOS2DVPROC glad_glRasterPos2dv;
  void APIENTRY glad_debug_impl_glRasterPos2dv(const GLdouble * arg0) {    
      _pre_call_callback_gl("glRasterPos2dv", (void*)glRasterPos2dv, 1, arg0);
       glad_glRasterPos2dv(arg0);
      _post_call_callback_gl("glRasterPos2dv", (void*)glRasterPos2dv, 1, arg0);
      
  }
  PFNGLRASTERPOS2DVPROC glad_debug_glRasterPos2dv = glad_debug_impl_glRasterPos2dv;
  PFNGLRASTERPOS2FPROC glad_glRasterPos2f;
  void APIENTRY glad_debug_impl_glRasterPos2f(GLfloat arg0, GLfloat arg1) {    
      _pre_call_callback_gl("glRasterPos2f", (void*)glRasterPos2f, 2, arg0, arg1);
       glad_glRasterPos2f(arg0, arg1);
      _post_call_callback_gl("glRasterPos2f", (void*)glRasterPos2f, 2, arg0, arg1);
      
  }
  PFNGLRASTERPOS2FPROC glad_debug_glRasterPos2f = glad_debug_impl_glRasterPos2f;
  PFNGLRASTERPOS2FVPROC glad_glRasterPos2fv;
  void APIENTRY glad_debug_impl_glRasterPos2fv(const GLfloat * arg0) {    
      _pre_call_callback_gl("glRasterPos2fv", (void*)glRasterPos2fv, 1, arg0);
       glad_glRasterPos2fv(arg0);
      _post_call_callback_gl("glRasterPos2fv", (void*)glRasterPos2fv, 1, arg0);
      
  }
  PFNGLRASTERPOS2FVPROC glad_debug_glRasterPos2fv = glad_debug_impl_glRasterPos2fv;
  PFNGLRASTERPOS2IPROC glad_glRasterPos2i;
  void APIENTRY glad_debug_impl_glRasterPos2i(GLint arg0, GLint arg1) {    
      _pre_call_callback_gl("glRasterPos2i", (void*)glRasterPos2i, 2, arg0, arg1);
       glad_glRasterPos2i(arg0, arg1);
      _post_call_callback_gl("glRasterPos2i", (void*)glRasterPos2i, 2, arg0, arg1);
      
  }
  PFNGLRASTERPOS2IPROC glad_debug_glRasterPos2i = glad_debug_impl_glRasterPos2i;
  PFNGLRASTERPOS2IVPROC glad_glRasterPos2iv;
  void APIENTRY glad_debug_impl_glRasterPos2iv(const GLint * arg0) {    
      _pre_call_callback_gl("glRasterPos2iv", (void*)glRasterPos2iv, 1, arg0);
       glad_glRasterPos2iv(arg0);
      _post_call_callback_gl("glRasterPos2iv", (void*)glRasterPos2iv, 1, arg0);
      
  }
  PFNGLRASTERPOS2IVPROC glad_debug_glRasterPos2iv = glad_debug_impl_glRasterPos2iv;
  PFNGLRASTERPOS2SPROC glad_glRasterPos2s;
  void APIENTRY glad_debug_impl_glRasterPos2s(GLshort arg0, GLshort arg1) {    
      _pre_call_callback_gl("glRasterPos2s", (void*)glRasterPos2s, 2, arg0, arg1);
       glad_glRasterPos2s(arg0, arg1);
      _post_call_callback_gl("glRasterPos2s", (void*)glRasterPos2s, 2, arg0, arg1);
      
  }
  PFNGLRASTERPOS2SPROC glad_debug_glRasterPos2s = glad_debug_impl_glRasterPos2s;
  PFNGLRASTERPOS2SVPROC glad_glRasterPos2sv;
  void APIENTRY glad_debug_impl_glRasterPos2sv(const GLshort * arg0) {    
      _pre_call_callback_gl("glRasterPos2sv", (void*)glRasterPos2sv, 1, arg0);
       glad_glRasterPos2sv(arg0);
      _post_call_callback_gl("glRasterPos2sv", (void*)glRasterPos2sv, 1, arg0);
      
  }
  PFNGLRASTERPOS2SVPROC glad_debug_glRasterPos2sv = glad_debug_impl_glRasterPos2sv;
  PFNGLRASTERPOS3DPROC glad_glRasterPos3d;
  void APIENTRY glad_debug_impl_glRasterPos3d(GLdouble arg0, GLdouble arg1, GLdouble arg2) {    
      _pre_call_callback_gl("glRasterPos3d", (void*)glRasterPos3d, 3, arg0, arg1, arg2);
       glad_glRasterPos3d(arg0, arg1, arg2);
      _post_call_callback_gl("glRasterPos3d", (void*)glRasterPos3d, 3, arg0, arg1, arg2);
      
  }
  PFNGLRASTERPOS3DPROC glad_debug_glRasterPos3d = glad_debug_impl_glRasterPos3d;
  PFNGLRASTERPOS3DVPROC glad_glRasterPos3dv;
  void APIENTRY glad_debug_impl_glRasterPos3dv(const GLdouble * arg0) {    
      _pre_call_callback_gl("glRasterPos3dv", (void*)glRasterPos3dv, 1, arg0);
       glad_glRasterPos3dv(arg0);
      _post_call_callback_gl("glRasterPos3dv", (void*)glRasterPos3dv, 1, arg0);
      
  }
  PFNGLRASTERPOS3DVPROC glad_debug_glRasterPos3dv = glad_debug_impl_glRasterPos3dv;
  PFNGLRASTERPOS3FPROC glad_glRasterPos3f;
  void APIENTRY glad_debug_impl_glRasterPos3f(GLfloat arg0, GLfloat arg1, GLfloat arg2) {    
      _pre_call_callback_gl("glRasterPos3f", (void*)glRasterPos3f, 3, arg0, arg1, arg2);
       glad_glRasterPos3f(arg0, arg1, arg2);
      _post_call_callback_gl("glRasterPos3f", (void*)glRasterPos3f, 3, arg0, arg1, arg2);
      
  }
  PFNGLRASTERPOS3FPROC glad_debug_glRasterPos3f = glad_debug_impl_glRasterPos3f;
  PFNGLRASTERPOS3FVPROC glad_glRasterPos3fv;
  void APIENTRY glad_debug_impl_glRasterPos3fv(const GLfloat * arg0) {    
      _pre_call_callback_gl("glRasterPos3fv", (void*)glRasterPos3fv, 1, arg0);
       glad_glRasterPos3fv(arg0);
      _post_call_callback_gl("glRasterPos3fv", (void*)glRasterPos3fv, 1, arg0);
      
  }
  PFNGLRASTERPOS3FVPROC glad_debug_glRasterPos3fv = glad_debug_impl_glRasterPos3fv;
  PFNGLRASTERPOS3IPROC glad_glRasterPos3i;
  void APIENTRY glad_debug_impl_glRasterPos3i(GLint arg0, GLint arg1, GLint arg2) {    
      _pre_call_callback_gl("glRasterPos3i", (void*)glRasterPos3i, 3, arg0, arg1, arg2);
       glad_glRasterPos3i(arg0, arg1, arg2);
      _post_call_callback_gl("glRasterPos3i", (void*)glRasterPos3i, 3, arg0, arg1, arg2);
      
  }
  PFNGLRASTERPOS3IPROC glad_debug_glRasterPos3i = glad_debug_impl_glRasterPos3i;
  PFNGLRASTERPOS3IVPROC glad_glRasterPos3iv;
  void APIENTRY glad_debug_impl_glRasterPos3iv(const GLint * arg0) {    
      _pre_call_callback_gl("glRasterPos3iv", (void*)glRasterPos3iv, 1, arg0);
       glad_glRasterPos3iv(arg0);
      _post_call_callback_gl("glRasterPos3iv", (void*)glRasterPos3iv, 1, arg0);
      
  }
  PFNGLRASTERPOS3IVPROC glad_debug_glRasterPos3iv = glad_debug_impl_glRasterPos3iv;
  PFNGLRASTERPOS3SPROC glad_glRasterPos3s;
  void APIENTRY glad_debug_impl_glRasterPos3s(GLshort arg0, GLshort arg1, GLshort arg2) {    
      _pre_call_callback_gl("glRasterPos3s", (void*)glRasterPos3s, 3, arg0, arg1, arg2);
       glad_glRasterPos3s(arg0, arg1, arg2);
      _post_call_callback_gl("glRasterPos3s", (void*)glRasterPos3s, 3, arg0, arg1, arg2);
      
  }
  PFNGLRASTERPOS3SPROC glad_debug_glRasterPos3s = glad_debug_impl_glRasterPos3s;
  PFNGLRASTERPOS3SVPROC glad_glRasterPos3sv;
  void APIENTRY glad_debug_impl_glRasterPos3sv(const GLshort * arg0) {    
      _pre_call_callback_gl("glRasterPos3sv", (void*)glRasterPos3sv, 1, arg0);
       glad_glRasterPos3sv(arg0);
      _post_call_callback_gl("glRasterPos3sv", (void*)glRasterPos3sv, 1, arg0);
      
  }
  PFNGLRASTERPOS3SVPROC glad_debug_glRasterPos3sv = glad_debug_impl_glRasterPos3sv;
  PFNGLRASTERPOS4DPROC glad_glRasterPos4d;
  void APIENTRY glad_debug_impl_glRasterPos4d(GLdouble arg0, GLdouble arg1, GLdouble arg2, GLdouble arg3) {    
      _pre_call_callback_gl("glRasterPos4d", (void*)glRasterPos4d, 4, arg0, arg1, arg2, arg3);
       glad_glRasterPos4d(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glRasterPos4d", (void*)glRasterPos4d, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLRASTERPOS4DPROC glad_debug_glRasterPos4d = glad_debug_impl_glRasterPos4d;
  PFNGLRASTERPOS4DVPROC glad_glRasterPos4dv;
  void APIENTRY glad_debug_impl_glRasterPos4dv(const GLdouble * arg0) {    
      _pre_call_callback_gl("glRasterPos4dv", (void*)glRasterPos4dv, 1, arg0);
       glad_glRasterPos4dv(arg0);
      _post_call_callback_gl("glRasterPos4dv", (void*)glRasterPos4dv, 1, arg0);
      
  }
  PFNGLRASTERPOS4DVPROC glad_debug_glRasterPos4dv = glad_debug_impl_glRasterPos4dv;
  PFNGLRASTERPOS4FPROC glad_glRasterPos4f;
  void APIENTRY glad_debug_impl_glRasterPos4f(GLfloat arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3) {    
      _pre_call_callback_gl("glRasterPos4f", (void*)glRasterPos4f, 4, arg0, arg1, arg2, arg3);
       glad_glRasterPos4f(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glRasterPos4f", (void*)glRasterPos4f, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLRASTERPOS4FPROC glad_debug_glRasterPos4f = glad_debug_impl_glRasterPos4f;
  PFNGLRASTERPOS4FVPROC glad_glRasterPos4fv;
  void APIENTRY glad_debug_impl_glRasterPos4fv(const GLfloat * arg0) {    
      _pre_call_callback_gl("glRasterPos4fv", (void*)glRasterPos4fv, 1, arg0);
       glad_glRasterPos4fv(arg0);
      _post_call_callback_gl("glRasterPos4fv", (void*)glRasterPos4fv, 1, arg0);
      
  }
  PFNGLRASTERPOS4FVPROC glad_debug_glRasterPos4fv = glad_debug_impl_glRasterPos4fv;
  PFNGLRASTERPOS4IPROC glad_glRasterPos4i;
  void APIENTRY glad_debug_impl_glRasterPos4i(GLint arg0, GLint arg1, GLint arg2, GLint arg3) {    
      _pre_call_callback_gl("glRasterPos4i", (void*)glRasterPos4i, 4, arg0, arg1, arg2, arg3);
       glad_glRasterPos4i(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glRasterPos4i", (void*)glRasterPos4i, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLRASTERPOS4IPROC glad_debug_glRasterPos4i = glad_debug_impl_glRasterPos4i;
  PFNGLRASTERPOS4IVPROC glad_glRasterPos4iv;
  void APIENTRY glad_debug_impl_glRasterPos4iv(const GLint * arg0) {    
      _pre_call_callback_gl("glRasterPos4iv", (void*)glRasterPos4iv, 1, arg0);
       glad_glRasterPos4iv(arg0);
      _post_call_callback_gl("glRasterPos4iv", (void*)glRasterPos4iv, 1, arg0);
      
  }
  PFNGLRASTERPOS4IVPROC glad_debug_glRasterPos4iv = glad_debug_impl_glRasterPos4iv;
  PFNGLRASTERPOS4SPROC glad_glRasterPos4s;
  void APIENTRY glad_debug_impl_glRasterPos4s(GLshort arg0, GLshort arg1, GLshort arg2, GLshort arg3) {    
      _pre_call_callback_gl("glRasterPos4s", (void*)glRasterPos4s, 4, arg0, arg1, arg2, arg3);
       glad_glRasterPos4s(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glRasterPos4s", (void*)glRasterPos4s, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLRASTERPOS4SPROC glad_debug_glRasterPos4s = glad_debug_impl_glRasterPos4s;
  PFNGLRASTERPOS4SVPROC glad_glRasterPos4sv;
  void APIENTRY glad_debug_impl_glRasterPos4sv(const GLshort * arg0) {    
      _pre_call_callback_gl("glRasterPos4sv", (void*)glRasterPos4sv, 1, arg0);
       glad_glRasterPos4sv(arg0);
      _post_call_callback_gl("glRasterPos4sv", (void*)glRasterPos4sv, 1, arg0);
      
  }
  PFNGLRASTERPOS4SVPROC glad_debug_glRasterPos4sv = glad_debug_impl_glRasterPos4sv;
  PFNGLREADBUFFERPROC glad_glReadBuffer;
  void APIENTRY glad_debug_impl_glReadBuffer(GLenum arg0) {    
      _pre_call_callback_gl("glReadBuffer", (void*)glReadBuffer, 1, arg0);
       glad_glReadBuffer(arg0);
      _post_call_callback_gl("glReadBuffer", (void*)glReadBuffer, 1, arg0);
      
  }
  PFNGLREADBUFFERPROC glad_debug_glReadBuffer = glad_debug_impl_glReadBuffer;
  PFNGLREADPIXELSPROC glad_glReadPixels;
  void APIENTRY glad_debug_impl_glReadPixels(GLint arg0, GLint arg1, GLsizei arg2, GLsizei arg3, GLenum arg4, GLenum arg5, void * arg6) {    
      _pre_call_callback_gl("glReadPixels", (void*)glReadPixels, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
       glad_glReadPixels(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      _post_call_callback_gl("glReadPixels", (void*)glReadPixels, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      
  }
  PFNGLREADPIXELSPROC glad_debug_glReadPixels = glad_debug_impl_glReadPixels;
  PFNGLRECTDPROC glad_glRectd;
  void APIENTRY glad_debug_impl_glRectd(GLdouble arg0, GLdouble arg1, GLdouble arg2, GLdouble arg3) {    
      _pre_call_callback_gl("glRectd", (void*)glRectd, 4, arg0, arg1, arg2, arg3);
       glad_glRectd(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glRectd", (void*)glRectd, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLRECTDPROC glad_debug_glRectd = glad_debug_impl_glRectd;
  PFNGLRECTDVPROC glad_glRectdv;
  void APIENTRY glad_debug_impl_glRectdv(const GLdouble * arg0, const GLdouble * arg1) {    
      _pre_call_callback_gl("glRectdv", (void*)glRectdv, 2, arg0, arg1);
       glad_glRectdv(arg0, arg1);
      _post_call_callback_gl("glRectdv", (void*)glRectdv, 2, arg0, arg1);
      
  }
  PFNGLRECTDVPROC glad_debug_glRectdv = glad_debug_impl_glRectdv;
  PFNGLRECTFPROC glad_glRectf;
  void APIENTRY glad_debug_impl_glRectf(GLfloat arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3) {    
      _pre_call_callback_gl("glRectf", (void*)glRectf, 4, arg0, arg1, arg2, arg3);
       glad_glRectf(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glRectf", (void*)glRectf, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLRECTFPROC glad_debug_glRectf = glad_debug_impl_glRectf;
  PFNGLRECTFVPROC glad_glRectfv;
  void APIENTRY glad_debug_impl_glRectfv(const GLfloat * arg0, const GLfloat * arg1) {    
      _pre_call_callback_gl("glRectfv", (void*)glRectfv, 2, arg0, arg1);
       glad_glRectfv(arg0, arg1);
      _post_call_callback_gl("glRectfv", (void*)glRectfv, 2, arg0, arg1);
      
  }
  PFNGLRECTFVPROC glad_debug_glRectfv = glad_debug_impl_glRectfv;
  PFNGLRECTIPROC glad_glRecti;
  void APIENTRY glad_debug_impl_glRecti(GLint arg0, GLint arg1, GLint arg2, GLint arg3) {    
      _pre_call_callback_gl("glRecti", (void*)glRecti, 4, arg0, arg1, arg2, arg3);
       glad_glRecti(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glRecti", (void*)glRecti, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLRECTIPROC glad_debug_glRecti = glad_debug_impl_glRecti;
  PFNGLRECTIVPROC glad_glRectiv;
  void APIENTRY glad_debug_impl_glRectiv(const GLint * arg0, const GLint * arg1) {    
      _pre_call_callback_gl("glRectiv", (void*)glRectiv, 2, arg0, arg1);
       glad_glRectiv(arg0, arg1);
      _post_call_callback_gl("glRectiv", (void*)glRectiv, 2, arg0, arg1);
      
  }
  PFNGLRECTIVPROC glad_debug_glRectiv = glad_debug_impl_glRectiv;
  PFNGLRECTSPROC glad_glRects;
  void APIENTRY glad_debug_impl_glRects(GLshort arg0, GLshort arg1, GLshort arg2, GLshort arg3) {    
      _pre_call_callback_gl("glRects", (void*)glRects, 4, arg0, arg1, arg2, arg3);
       glad_glRects(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glRects", (void*)glRects, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLRECTSPROC glad_debug_glRects = glad_debug_impl_glRects;
  PFNGLRECTSVPROC glad_glRectsv;
  void APIENTRY glad_debug_impl_glRectsv(const GLshort * arg0, const GLshort * arg1) {    
      _pre_call_callback_gl("glRectsv", (void*)glRectsv, 2, arg0, arg1);
       glad_glRectsv(arg0, arg1);
      _post_call_callback_gl("glRectsv", (void*)glRectsv, 2, arg0, arg1);
      
  }
  PFNGLRECTSVPROC glad_debug_glRectsv = glad_debug_impl_glRectsv;
  PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler;
  void APIENTRY glad_debug_impl_glReleaseShaderCompiler(void) {    
      _pre_call_callback_gl("glReleaseShaderCompiler", (void*)glReleaseShaderCompiler, 0);
       glad_glReleaseShaderCompiler();
      _post_call_callback_gl("glReleaseShaderCompiler", (void*)glReleaseShaderCompiler, 0);
      
  }
  PFNGLRELEASESHADERCOMPILERPROC glad_debug_glReleaseShaderCompiler = glad_debug_impl_glReleaseShaderCompiler;
  PFNGLRENDERMODEPROC glad_glRenderMode;
  GLint APIENTRY glad_debug_impl_glRenderMode(GLenum arg0) {    
      GLint ret;
      _pre_call_callback_gl("glRenderMode", (void*)glRenderMode, 1, arg0);
      ret =  glad_glRenderMode(arg0);
      _post_call_callback_gl("glRenderMode", (void*)glRenderMode, 1, arg0);
      return ret;
  }
  PFNGLRENDERMODEPROC glad_debug_glRenderMode = glad_debug_impl_glRenderMode;
  PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage;
  void APIENTRY glad_debug_impl_glRenderbufferStorage(GLenum arg0, GLenum arg1, GLsizei arg2, GLsizei arg3) {    
      _pre_call_callback_gl("glRenderbufferStorage", (void*)glRenderbufferStorage, 4, arg0, arg1, arg2, arg3);
       glad_glRenderbufferStorage(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glRenderbufferStorage", (void*)glRenderbufferStorage, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLRENDERBUFFERSTORAGEPROC glad_debug_glRenderbufferStorage = glad_debug_impl_glRenderbufferStorage;
  PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample;
  void APIENTRY glad_debug_impl_glRenderbufferStorageMultisample(GLenum arg0, GLsizei arg1, GLenum arg2, GLsizei arg3, GLsizei arg4) {    
      _pre_call_callback_gl("glRenderbufferStorageMultisample", (void*)glRenderbufferStorageMultisample, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glRenderbufferStorageMultisample(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glRenderbufferStorageMultisample", (void*)glRenderbufferStorageMultisample, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_debug_glRenderbufferStorageMultisample = glad_debug_impl_glRenderbufferStorageMultisample;
  PFNGLRESUMETRANSFORMFEEDBACKPROC glad_glResumeTransformFeedback;
  void APIENTRY glad_debug_impl_glResumeTransformFeedback(void) {    
      _pre_call_callback_gl("glResumeTransformFeedback", (void*)glResumeTransformFeedback, 0);
       glad_glResumeTransformFeedback();
      _post_call_callback_gl("glResumeTransformFeedback", (void*)glResumeTransformFeedback, 0);
      
  }
  PFNGLRESUMETRANSFORMFEEDBACKPROC glad_debug_glResumeTransformFeedback = glad_debug_impl_glResumeTransformFeedback;
  PFNGLROTATEDPROC glad_glRotated;
  void APIENTRY glad_debug_impl_glRotated(GLdouble arg0, GLdouble arg1, GLdouble arg2, GLdouble arg3) {    
      _pre_call_callback_gl("glRotated", (void*)glRotated, 4, arg0, arg1, arg2, arg3);
       glad_glRotated(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glRotated", (void*)glRotated, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLROTATEDPROC glad_debug_glRotated = glad_debug_impl_glRotated;
  PFNGLROTATEFPROC glad_glRotatef;
  void APIENTRY glad_debug_impl_glRotatef(GLfloat arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3) {    
      _pre_call_callback_gl("glRotatef", (void*)glRotatef, 4, arg0, arg1, arg2, arg3);
       glad_glRotatef(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glRotatef", (void*)glRotatef, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLROTATEFPROC glad_debug_glRotatef = glad_debug_impl_glRotatef;
  PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage;
  void APIENTRY glad_debug_impl_glSampleCoverage(GLfloat arg0, GLboolean arg1) {    
      _pre_call_callback_gl("glSampleCoverage", (void*)glSampleCoverage, 2, arg0, arg1);
       glad_glSampleCoverage(arg0, arg1);
      _post_call_callback_gl("glSampleCoverage", (void*)glSampleCoverage, 2, arg0, arg1);
      
  }
  PFNGLSAMPLECOVERAGEPROC glad_debug_glSampleCoverage = glad_debug_impl_glSampleCoverage;
  PFNGLSAMPLEMASKIPROC glad_glSampleMaski;
  void APIENTRY glad_debug_impl_glSampleMaski(GLuint arg0, GLbitfield arg1) {    
      _pre_call_callback_gl("glSampleMaski", (void*)glSampleMaski, 2, arg0, arg1);
       glad_glSampleMaski(arg0, arg1);
      _post_call_callback_gl("glSampleMaski", (void*)glSampleMaski, 2, arg0, arg1);
      
  }
  PFNGLSAMPLEMASKIPROC glad_debug_glSampleMaski = glad_debug_impl_glSampleMaski;
  PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv;
  void APIENTRY glad_debug_impl_glSamplerParameterIiv(GLuint arg0, GLenum arg1, const GLint * arg2) {    
      _pre_call_callback_gl("glSamplerParameterIiv", (void*)glSamplerParameterIiv, 3, arg0, arg1, arg2);
       glad_glSamplerParameterIiv(arg0, arg1, arg2);
      _post_call_callback_gl("glSamplerParameterIiv", (void*)glSamplerParameterIiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLSAMPLERPARAMETERIIVPROC glad_debug_glSamplerParameterIiv = glad_debug_impl_glSamplerParameterIiv;
  PFNGLSAMPLERPARAMETERIUIVPROC glad_glSamplerParameterIuiv;
  void APIENTRY glad_debug_impl_glSamplerParameterIuiv(GLuint arg0, GLenum arg1, const GLuint * arg2) {    
      _pre_call_callback_gl("glSamplerParameterIuiv", (void*)glSamplerParameterIuiv, 3, arg0, arg1, arg2);
       glad_glSamplerParameterIuiv(arg0, arg1, arg2);
      _post_call_callback_gl("glSamplerParameterIuiv", (void*)glSamplerParameterIuiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLSAMPLERPARAMETERIUIVPROC glad_debug_glSamplerParameterIuiv = glad_debug_impl_glSamplerParameterIuiv;
  PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf;
  void APIENTRY glad_debug_impl_glSamplerParameterf(GLuint arg0, GLenum arg1, GLfloat arg2) {    
      _pre_call_callback_gl("glSamplerParameterf", (void*)glSamplerParameterf, 3, arg0, arg1, arg2);
       glad_glSamplerParameterf(arg0, arg1, arg2);
      _post_call_callback_gl("glSamplerParameterf", (void*)glSamplerParameterf, 3, arg0, arg1, arg2);
      
  }
  PFNGLSAMPLERPARAMETERFPROC glad_debug_glSamplerParameterf = glad_debug_impl_glSamplerParameterf;
  PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv;
  void APIENTRY glad_debug_impl_glSamplerParameterfv(GLuint arg0, GLenum arg1, const GLfloat * arg2) {    
      _pre_call_callback_gl("glSamplerParameterfv", (void*)glSamplerParameterfv, 3, arg0, arg1, arg2);
       glad_glSamplerParameterfv(arg0, arg1, arg2);
      _post_call_callback_gl("glSamplerParameterfv", (void*)glSamplerParameterfv, 3, arg0, arg1, arg2);
      
  }
  PFNGLSAMPLERPARAMETERFVPROC glad_debug_glSamplerParameterfv = glad_debug_impl_glSamplerParameterfv;
  PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri;
  void APIENTRY glad_debug_impl_glSamplerParameteri(GLuint arg0, GLenum arg1, GLint arg2) {    
      _pre_call_callback_gl("glSamplerParameteri", (void*)glSamplerParameteri, 3, arg0, arg1, arg2);
       glad_glSamplerParameteri(arg0, arg1, arg2);
      _post_call_callback_gl("glSamplerParameteri", (void*)glSamplerParameteri, 3, arg0, arg1, arg2);
      
  }
  PFNGLSAMPLERPARAMETERIPROC glad_debug_glSamplerParameteri = glad_debug_impl_glSamplerParameteri;
  PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv;
  void APIENTRY glad_debug_impl_glSamplerParameteriv(GLuint arg0, GLenum arg1, const GLint * arg2) {    
      _pre_call_callback_gl("glSamplerParameteriv", (void*)glSamplerParameteriv, 3, arg0, arg1, arg2);
       glad_glSamplerParameteriv(arg0, arg1, arg2);
      _post_call_callback_gl("glSamplerParameteriv", (void*)glSamplerParameteriv, 3, arg0, arg1, arg2);
      
  }
  PFNGLSAMPLERPARAMETERIVPROC glad_debug_glSamplerParameteriv = glad_debug_impl_glSamplerParameteriv;
  PFNGLSCALEDPROC glad_glScaled;
  void APIENTRY glad_debug_impl_glScaled(GLdouble arg0, GLdouble arg1, GLdouble arg2) {    
      _pre_call_callback_gl("glScaled", (void*)glScaled, 3, arg0, arg1, arg2);
       glad_glScaled(arg0, arg1, arg2);
      _post_call_callback_gl("glScaled", (void*)glScaled, 3, arg0, arg1, arg2);
      
  }
  PFNGLSCALEDPROC glad_debug_glScaled = glad_debug_impl_glScaled;
  PFNGLSCALEFPROC glad_glScalef;
  void APIENTRY glad_debug_impl_glScalef(GLfloat arg0, GLfloat arg1, GLfloat arg2) {    
      _pre_call_callback_gl("glScalef", (void*)glScalef, 3, arg0, arg1, arg2);
       glad_glScalef(arg0, arg1, arg2);
      _post_call_callback_gl("glScalef", (void*)glScalef, 3, arg0, arg1, arg2);
      
  }
  PFNGLSCALEFPROC glad_debug_glScalef = glad_debug_impl_glScalef;
  PFNGLSCISSORPROC glad_glScissor;
  void APIENTRY glad_debug_impl_glScissor(GLint arg0, GLint arg1, GLsizei arg2, GLsizei arg3) {    
      _pre_call_callback_gl("glScissor", (void*)glScissor, 4, arg0, arg1, arg2, arg3);
       glad_glScissor(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glScissor", (void*)glScissor, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLSCISSORPROC glad_debug_glScissor = glad_debug_impl_glScissor;
  PFNGLSCISSORARRAYVPROC glad_glScissorArrayv;
  void APIENTRY glad_debug_impl_glScissorArrayv(GLuint arg0, GLsizei arg1, const GLint * arg2) {    
      _pre_call_callback_gl("glScissorArrayv", (void*)glScissorArrayv, 3, arg0, arg1, arg2);
       glad_glScissorArrayv(arg0, arg1, arg2);
      _post_call_callback_gl("glScissorArrayv", (void*)glScissorArrayv, 3, arg0, arg1, arg2);
      
  }
  PFNGLSCISSORARRAYVPROC glad_debug_glScissorArrayv = glad_debug_impl_glScissorArrayv;
  PFNGLSCISSORINDEXEDPROC glad_glScissorIndexed;
  void APIENTRY glad_debug_impl_glScissorIndexed(GLuint arg0, GLint arg1, GLint arg2, GLsizei arg3, GLsizei arg4) {    
      _pre_call_callback_gl("glScissorIndexed", (void*)glScissorIndexed, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glScissorIndexed(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glScissorIndexed", (void*)glScissorIndexed, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLSCISSORINDEXEDPROC glad_debug_glScissorIndexed = glad_debug_impl_glScissorIndexed;
  PFNGLSCISSORINDEXEDVPROC glad_glScissorIndexedv;
  void APIENTRY glad_debug_impl_glScissorIndexedv(GLuint arg0, const GLint * arg1) {    
      _pre_call_callback_gl("glScissorIndexedv", (void*)glScissorIndexedv, 2, arg0, arg1);
       glad_glScissorIndexedv(arg0, arg1);
      _post_call_callback_gl("glScissorIndexedv", (void*)glScissorIndexedv, 2, arg0, arg1);
      
  }
  PFNGLSCISSORINDEXEDVPROC glad_debug_glScissorIndexedv = glad_debug_impl_glScissorIndexedv;
  PFNGLSECONDARYCOLOR3BPROC glad_glSecondaryColor3b;
  void APIENTRY glad_debug_impl_glSecondaryColor3b(GLbyte arg0, GLbyte arg1, GLbyte arg2) {    
      _pre_call_callback_gl("glSecondaryColor3b", (void*)glSecondaryColor3b, 3, arg0, arg1, arg2);
       glad_glSecondaryColor3b(arg0, arg1, arg2);
      _post_call_callback_gl("glSecondaryColor3b", (void*)glSecondaryColor3b, 3, arg0, arg1, arg2);
      
  }
  PFNGLSECONDARYCOLOR3BPROC glad_debug_glSecondaryColor3b = glad_debug_impl_glSecondaryColor3b;
  PFNGLSECONDARYCOLOR3BVPROC glad_glSecondaryColor3bv;
  void APIENTRY glad_debug_impl_glSecondaryColor3bv(const GLbyte * arg0) {    
      _pre_call_callback_gl("glSecondaryColor3bv", (void*)glSecondaryColor3bv, 1, arg0);
       glad_glSecondaryColor3bv(arg0);
      _post_call_callback_gl("glSecondaryColor3bv", (void*)glSecondaryColor3bv, 1, arg0);
      
  }
  PFNGLSECONDARYCOLOR3BVPROC glad_debug_glSecondaryColor3bv = glad_debug_impl_glSecondaryColor3bv;
  PFNGLSECONDARYCOLOR3DPROC glad_glSecondaryColor3d;
  void APIENTRY glad_debug_impl_glSecondaryColor3d(GLdouble arg0, GLdouble arg1, GLdouble arg2) {    
      _pre_call_callback_gl("glSecondaryColor3d", (void*)glSecondaryColor3d, 3, arg0, arg1, arg2);
       glad_glSecondaryColor3d(arg0, arg1, arg2);
      _post_call_callback_gl("glSecondaryColor3d", (void*)glSecondaryColor3d, 3, arg0, arg1, arg2);
      
  }
  PFNGLSECONDARYCOLOR3DPROC glad_debug_glSecondaryColor3d = glad_debug_impl_glSecondaryColor3d;
  PFNGLSECONDARYCOLOR3DVPROC glad_glSecondaryColor3dv;
  void APIENTRY glad_debug_impl_glSecondaryColor3dv(const GLdouble * arg0) {    
      _pre_call_callback_gl("glSecondaryColor3dv", (void*)glSecondaryColor3dv, 1, arg0);
       glad_glSecondaryColor3dv(arg0);
      _post_call_callback_gl("glSecondaryColor3dv", (void*)glSecondaryColor3dv, 1, arg0);
      
  }
  PFNGLSECONDARYCOLOR3DVPROC glad_debug_glSecondaryColor3dv = glad_debug_impl_glSecondaryColor3dv;
  PFNGLSECONDARYCOLOR3FPROC glad_glSecondaryColor3f;
  void APIENTRY glad_debug_impl_glSecondaryColor3f(GLfloat arg0, GLfloat arg1, GLfloat arg2) {    
      _pre_call_callback_gl("glSecondaryColor3f", (void*)glSecondaryColor3f, 3, arg0, arg1, arg2);
       glad_glSecondaryColor3f(arg0, arg1, arg2);
      _post_call_callback_gl("glSecondaryColor3f", (void*)glSecondaryColor3f, 3, arg0, arg1, arg2);
      
  }
  PFNGLSECONDARYCOLOR3FPROC glad_debug_glSecondaryColor3f = glad_debug_impl_glSecondaryColor3f;
  PFNGLSECONDARYCOLOR3FVPROC glad_glSecondaryColor3fv;
  void APIENTRY glad_debug_impl_glSecondaryColor3fv(const GLfloat * arg0) {    
      _pre_call_callback_gl("glSecondaryColor3fv", (void*)glSecondaryColor3fv, 1, arg0);
       glad_glSecondaryColor3fv(arg0);
      _post_call_callback_gl("glSecondaryColor3fv", (void*)glSecondaryColor3fv, 1, arg0);
      
  }
  PFNGLSECONDARYCOLOR3FVPROC glad_debug_glSecondaryColor3fv = glad_debug_impl_glSecondaryColor3fv;
  PFNGLSECONDARYCOLOR3IPROC glad_glSecondaryColor3i;
  void APIENTRY glad_debug_impl_glSecondaryColor3i(GLint arg0, GLint arg1, GLint arg2) {    
      _pre_call_callback_gl("glSecondaryColor3i", (void*)glSecondaryColor3i, 3, arg0, arg1, arg2);
       glad_glSecondaryColor3i(arg0, arg1, arg2);
      _post_call_callback_gl("glSecondaryColor3i", (void*)glSecondaryColor3i, 3, arg0, arg1, arg2);
      
  }
  PFNGLSECONDARYCOLOR3IPROC glad_debug_glSecondaryColor3i = glad_debug_impl_glSecondaryColor3i;
  PFNGLSECONDARYCOLOR3IVPROC glad_glSecondaryColor3iv;
  void APIENTRY glad_debug_impl_glSecondaryColor3iv(const GLint * arg0) {    
      _pre_call_callback_gl("glSecondaryColor3iv", (void*)glSecondaryColor3iv, 1, arg0);
       glad_glSecondaryColor3iv(arg0);
      _post_call_callback_gl("glSecondaryColor3iv", (void*)glSecondaryColor3iv, 1, arg0);
      
  }
  PFNGLSECONDARYCOLOR3IVPROC glad_debug_glSecondaryColor3iv = glad_debug_impl_glSecondaryColor3iv;
  PFNGLSECONDARYCOLOR3SPROC glad_glSecondaryColor3s;
  void APIENTRY glad_debug_impl_glSecondaryColor3s(GLshort arg0, GLshort arg1, GLshort arg2) {    
      _pre_call_callback_gl("glSecondaryColor3s", (void*)glSecondaryColor3s, 3, arg0, arg1, arg2);
       glad_glSecondaryColor3s(arg0, arg1, arg2);
      _post_call_callback_gl("glSecondaryColor3s", (void*)glSecondaryColor3s, 3, arg0, arg1, arg2);
      
  }
  PFNGLSECONDARYCOLOR3SPROC glad_debug_glSecondaryColor3s = glad_debug_impl_glSecondaryColor3s;
  PFNGLSECONDARYCOLOR3SVPROC glad_glSecondaryColor3sv;
  void APIENTRY glad_debug_impl_glSecondaryColor3sv(const GLshort * arg0) {    
      _pre_call_callback_gl("glSecondaryColor3sv", (void*)glSecondaryColor3sv, 1, arg0);
       glad_glSecondaryColor3sv(arg0);
      _post_call_callback_gl("glSecondaryColor3sv", (void*)glSecondaryColor3sv, 1, arg0);
      
  }
  PFNGLSECONDARYCOLOR3SVPROC glad_debug_glSecondaryColor3sv = glad_debug_impl_glSecondaryColor3sv;
  PFNGLSECONDARYCOLOR3UBPROC glad_glSecondaryColor3ub;
  void APIENTRY glad_debug_impl_glSecondaryColor3ub(GLubyte arg0, GLubyte arg1, GLubyte arg2) {    
      _pre_call_callback_gl("glSecondaryColor3ub", (void*)glSecondaryColor3ub, 3, arg0, arg1, arg2);
       glad_glSecondaryColor3ub(arg0, arg1, arg2);
      _post_call_callback_gl("glSecondaryColor3ub", (void*)glSecondaryColor3ub, 3, arg0, arg1, arg2);
      
  }
  PFNGLSECONDARYCOLOR3UBPROC glad_debug_glSecondaryColor3ub = glad_debug_impl_glSecondaryColor3ub;
  PFNGLSECONDARYCOLOR3UBVPROC glad_glSecondaryColor3ubv;
  void APIENTRY glad_debug_impl_glSecondaryColor3ubv(const GLubyte * arg0) {    
      _pre_call_callback_gl("glSecondaryColor3ubv", (void*)glSecondaryColor3ubv, 1, arg0);
       glad_glSecondaryColor3ubv(arg0);
      _post_call_callback_gl("glSecondaryColor3ubv", (void*)glSecondaryColor3ubv, 1, arg0);
      
  }
  PFNGLSECONDARYCOLOR3UBVPROC glad_debug_glSecondaryColor3ubv = glad_debug_impl_glSecondaryColor3ubv;
  PFNGLSECONDARYCOLOR3UIPROC glad_glSecondaryColor3ui;
  void APIENTRY glad_debug_impl_glSecondaryColor3ui(GLuint arg0, GLuint arg1, GLuint arg2) {    
      _pre_call_callback_gl("glSecondaryColor3ui", (void*)glSecondaryColor3ui, 3, arg0, arg1, arg2);
       glad_glSecondaryColor3ui(arg0, arg1, arg2);
      _post_call_callback_gl("glSecondaryColor3ui", (void*)glSecondaryColor3ui, 3, arg0, arg1, arg2);
      
  }
  PFNGLSECONDARYCOLOR3UIPROC glad_debug_glSecondaryColor3ui = glad_debug_impl_glSecondaryColor3ui;
  PFNGLSECONDARYCOLOR3UIVPROC glad_glSecondaryColor3uiv;
  void APIENTRY glad_debug_impl_glSecondaryColor3uiv(const GLuint * arg0) {    
      _pre_call_callback_gl("glSecondaryColor3uiv", (void*)glSecondaryColor3uiv, 1, arg0);
       glad_glSecondaryColor3uiv(arg0);
      _post_call_callback_gl("glSecondaryColor3uiv", (void*)glSecondaryColor3uiv, 1, arg0);
      
  }
  PFNGLSECONDARYCOLOR3UIVPROC glad_debug_glSecondaryColor3uiv = glad_debug_impl_glSecondaryColor3uiv;
  PFNGLSECONDARYCOLOR3USPROC glad_glSecondaryColor3us;
  void APIENTRY glad_debug_impl_glSecondaryColor3us(GLushort arg0, GLushort arg1, GLushort arg2) {    
      _pre_call_callback_gl("glSecondaryColor3us", (void*)glSecondaryColor3us, 3, arg0, arg1, arg2);
       glad_glSecondaryColor3us(arg0, arg1, arg2);
      _post_call_callback_gl("glSecondaryColor3us", (void*)glSecondaryColor3us, 3, arg0, arg1, arg2);
      
  }
  PFNGLSECONDARYCOLOR3USPROC glad_debug_glSecondaryColor3us = glad_debug_impl_glSecondaryColor3us;
  PFNGLSECONDARYCOLOR3USVPROC glad_glSecondaryColor3usv;
  void APIENTRY glad_debug_impl_glSecondaryColor3usv(const GLushort * arg0) {    
      _pre_call_callback_gl("glSecondaryColor3usv", (void*)glSecondaryColor3usv, 1, arg0);
       glad_glSecondaryColor3usv(arg0);
      _post_call_callback_gl("glSecondaryColor3usv", (void*)glSecondaryColor3usv, 1, arg0);
      
  }
  PFNGLSECONDARYCOLOR3USVPROC glad_debug_glSecondaryColor3usv = glad_debug_impl_glSecondaryColor3usv;
  PFNGLSECONDARYCOLORP3UIPROC glad_glSecondaryColorP3ui;
  void APIENTRY glad_debug_impl_glSecondaryColorP3ui(GLenum arg0, GLuint arg1) {    
      _pre_call_callback_gl("glSecondaryColorP3ui", (void*)glSecondaryColorP3ui, 2, arg0, arg1);
       glad_glSecondaryColorP3ui(arg0, arg1);
      _post_call_callback_gl("glSecondaryColorP3ui", (void*)glSecondaryColorP3ui, 2, arg0, arg1);
      
  }
  PFNGLSECONDARYCOLORP3UIPROC glad_debug_glSecondaryColorP3ui = glad_debug_impl_glSecondaryColorP3ui;
  PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv;
  void APIENTRY glad_debug_impl_glSecondaryColorP3uiv(GLenum arg0, const GLuint * arg1) {    
      _pre_call_callback_gl("glSecondaryColorP3uiv", (void*)glSecondaryColorP3uiv, 2, arg0, arg1);
       glad_glSecondaryColorP3uiv(arg0, arg1);
      _post_call_callback_gl("glSecondaryColorP3uiv", (void*)glSecondaryColorP3uiv, 2, arg0, arg1);
      
  }
  PFNGLSECONDARYCOLORP3UIVPROC glad_debug_glSecondaryColorP3uiv = glad_debug_impl_glSecondaryColorP3uiv;
  PFNGLSECONDARYCOLORPOINTERPROC glad_glSecondaryColorPointer;
  void APIENTRY glad_debug_impl_glSecondaryColorPointer(GLint arg0, GLenum arg1, GLsizei arg2, const void * arg3) {    
      _pre_call_callback_gl("glSecondaryColorPointer", (void*)glSecondaryColorPointer, 4, arg0, arg1, arg2, arg3);
       glad_glSecondaryColorPointer(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glSecondaryColorPointer", (void*)glSecondaryColorPointer, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLSECONDARYCOLORPOINTERPROC glad_debug_glSecondaryColorPointer = glad_debug_impl_glSecondaryColorPointer;
  PFNGLSELECTBUFFERPROC glad_glSelectBuffer;
  void APIENTRY glad_debug_impl_glSelectBuffer(GLsizei arg0, GLuint * arg1) {    
      _pre_call_callback_gl("glSelectBuffer", (void*)glSelectBuffer, 2, arg0, arg1);
       glad_glSelectBuffer(arg0, arg1);
      _post_call_callback_gl("glSelectBuffer", (void*)glSelectBuffer, 2, arg0, arg1);
      
  }
  PFNGLSELECTBUFFERPROC glad_debug_glSelectBuffer = glad_debug_impl_glSelectBuffer;
  PFNGLSHADEMODELPROC glad_glShadeModel;
  void APIENTRY glad_debug_impl_glShadeModel(GLenum arg0) {    
      _pre_call_callback_gl("glShadeModel", (void*)glShadeModel, 1, arg0);
       glad_glShadeModel(arg0);
      _post_call_callback_gl("glShadeModel", (void*)glShadeModel, 1, arg0);
      
  }
  PFNGLSHADEMODELPROC glad_debug_glShadeModel = glad_debug_impl_glShadeModel;
  PFNGLSHADERBINARYPROC glad_glShaderBinary;
  void APIENTRY glad_debug_impl_glShaderBinary(GLsizei arg0, const GLuint * arg1, GLenum arg2, const void * arg3, GLsizei arg4) {    
      _pre_call_callback_gl("glShaderBinary", (void*)glShaderBinary, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glShaderBinary(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glShaderBinary", (void*)glShaderBinary, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLSHADERBINARYPROC glad_debug_glShaderBinary = glad_debug_impl_glShaderBinary;
  PFNGLSHADERSOURCEPROC glad_glShaderSource;
  void APIENTRY glad_debug_impl_glShaderSource(GLuint arg0, GLsizei arg1, const GLchar *const* arg2, const GLint * arg3) {    
      _pre_call_callback_gl("glShaderSource", (void*)glShaderSource, 4, arg0, arg1, arg2, arg3);
       glad_glShaderSource(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glShaderSource", (void*)glShaderSource, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLSHADERSOURCEPROC glad_debug_glShaderSource = glad_debug_impl_glShaderSource;
  PFNGLSHADERSTORAGEBLOCKBINDINGPROC glad_glShaderStorageBlockBinding;
  void APIENTRY glad_debug_impl_glShaderStorageBlockBinding(GLuint arg0, GLuint arg1, GLuint arg2) {    
      _pre_call_callback_gl("glShaderStorageBlockBinding", (void*)glShaderStorageBlockBinding, 3, arg0, arg1, arg2);
       glad_glShaderStorageBlockBinding(arg0, arg1, arg2);
      _post_call_callback_gl("glShaderStorageBlockBinding", (void*)glShaderStorageBlockBinding, 3, arg0, arg1, arg2);
      
  }
  PFNGLSHADERSTORAGEBLOCKBINDINGPROC glad_debug_glShaderStorageBlockBinding = glad_debug_impl_glShaderStorageBlockBinding;
  PFNGLSTENCILFUNCPROC glad_glStencilFunc;
  void APIENTRY glad_debug_impl_glStencilFunc(GLenum arg0, GLint arg1, GLuint arg2) {    
      _pre_call_callback_gl("glStencilFunc", (void*)glStencilFunc, 3, arg0, arg1, arg2);
       glad_glStencilFunc(arg0, arg1, arg2);
      _post_call_callback_gl("glStencilFunc", (void*)glStencilFunc, 3, arg0, arg1, arg2);
      
  }
  PFNGLSTENCILFUNCPROC glad_debug_glStencilFunc = glad_debug_impl_glStencilFunc;
  PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate;
  void APIENTRY glad_debug_impl_glStencilFuncSeparate(GLenum arg0, GLenum arg1, GLint arg2, GLuint arg3) {    
      _pre_call_callback_gl("glStencilFuncSeparate", (void*)glStencilFuncSeparate, 4, arg0, arg1, arg2, arg3);
       glad_glStencilFuncSeparate(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glStencilFuncSeparate", (void*)glStencilFuncSeparate, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLSTENCILFUNCSEPARATEPROC glad_debug_glStencilFuncSeparate = glad_debug_impl_glStencilFuncSeparate;
  PFNGLSTENCILMASKPROC glad_glStencilMask;
  void APIENTRY glad_debug_impl_glStencilMask(GLuint arg0) {    
      _pre_call_callback_gl("glStencilMask", (void*)glStencilMask, 1, arg0);
       glad_glStencilMask(arg0);
      _post_call_callback_gl("glStencilMask", (void*)glStencilMask, 1, arg0);
      
  }
  PFNGLSTENCILMASKPROC glad_debug_glStencilMask = glad_debug_impl_glStencilMask;
  PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate;
  void APIENTRY glad_debug_impl_glStencilMaskSeparate(GLenum arg0, GLuint arg1) {    
      _pre_call_callback_gl("glStencilMaskSeparate", (void*)glStencilMaskSeparate, 2, arg0, arg1);
       glad_glStencilMaskSeparate(arg0, arg1);
      _post_call_callback_gl("glStencilMaskSeparate", (void*)glStencilMaskSeparate, 2, arg0, arg1);
      
  }
  PFNGLSTENCILMASKSEPARATEPROC glad_debug_glStencilMaskSeparate = glad_debug_impl_glStencilMaskSeparate;
  PFNGLSTENCILOPPROC glad_glStencilOp;
  void APIENTRY glad_debug_impl_glStencilOp(GLenum arg0, GLenum arg1, GLenum arg2) {    
      _pre_call_callback_gl("glStencilOp", (void*)glStencilOp, 3, arg0, arg1, arg2);
       glad_glStencilOp(arg0, arg1, arg2);
      _post_call_callback_gl("glStencilOp", (void*)glStencilOp, 3, arg0, arg1, arg2);
      
  }
  PFNGLSTENCILOPPROC glad_debug_glStencilOp = glad_debug_impl_glStencilOp;
  PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate;
  void APIENTRY glad_debug_impl_glStencilOpSeparate(GLenum arg0, GLenum arg1, GLenum arg2, GLenum arg3) {    
      _pre_call_callback_gl("glStencilOpSeparate", (void*)glStencilOpSeparate, 4, arg0, arg1, arg2, arg3);
       glad_glStencilOpSeparate(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glStencilOpSeparate", (void*)glStencilOpSeparate, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLSTENCILOPSEPARATEPROC glad_debug_glStencilOpSeparate = glad_debug_impl_glStencilOpSeparate;
  PFNGLTEXBUFFERPROC glad_glTexBuffer;
  void APIENTRY glad_debug_impl_glTexBuffer(GLenum arg0, GLenum arg1, GLuint arg2) {    
      _pre_call_callback_gl("glTexBuffer", (void*)glTexBuffer, 3, arg0, arg1, arg2);
       glad_glTexBuffer(arg0, arg1, arg2);
      _post_call_callback_gl("glTexBuffer", (void*)glTexBuffer, 3, arg0, arg1, arg2);
      
  }
  PFNGLTEXBUFFERPROC glad_debug_glTexBuffer = glad_debug_impl_glTexBuffer;
  PFNGLTEXBUFFERRANGEPROC glad_glTexBufferRange;
  void APIENTRY glad_debug_impl_glTexBufferRange(GLenum arg0, GLenum arg1, GLuint arg2, GLintptr arg3, GLsizeiptr arg4) {    
      _pre_call_callback_gl("glTexBufferRange", (void*)glTexBufferRange, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glTexBufferRange(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glTexBufferRange", (void*)glTexBufferRange, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLTEXBUFFERRANGEPROC glad_debug_glTexBufferRange = glad_debug_impl_glTexBufferRange;
  PFNGLTEXCOORD1DPROC glad_glTexCoord1d;
  void APIENTRY glad_debug_impl_glTexCoord1d(GLdouble arg0) {    
      _pre_call_callback_gl("glTexCoord1d", (void*)glTexCoord1d, 1, arg0);
       glad_glTexCoord1d(arg0);
      _post_call_callback_gl("glTexCoord1d", (void*)glTexCoord1d, 1, arg0);
      
  }
  PFNGLTEXCOORD1DPROC glad_debug_glTexCoord1d = glad_debug_impl_glTexCoord1d;
  PFNGLTEXCOORD1DVPROC glad_glTexCoord1dv;
  void APIENTRY glad_debug_impl_glTexCoord1dv(const GLdouble * arg0) {    
      _pre_call_callback_gl("glTexCoord1dv", (void*)glTexCoord1dv, 1, arg0);
       glad_glTexCoord1dv(arg0);
      _post_call_callback_gl("glTexCoord1dv", (void*)glTexCoord1dv, 1, arg0);
      
  }
  PFNGLTEXCOORD1DVPROC glad_debug_glTexCoord1dv = glad_debug_impl_glTexCoord1dv;
  PFNGLTEXCOORD1FPROC glad_glTexCoord1f;
  void APIENTRY glad_debug_impl_glTexCoord1f(GLfloat arg0) {    
      _pre_call_callback_gl("glTexCoord1f", (void*)glTexCoord1f, 1, arg0);
       glad_glTexCoord1f(arg0);
      _post_call_callback_gl("glTexCoord1f", (void*)glTexCoord1f, 1, arg0);
      
  }
  PFNGLTEXCOORD1FPROC glad_debug_glTexCoord1f = glad_debug_impl_glTexCoord1f;
  PFNGLTEXCOORD1FVPROC glad_glTexCoord1fv;
  void APIENTRY glad_debug_impl_glTexCoord1fv(const GLfloat * arg0) {    
      _pre_call_callback_gl("glTexCoord1fv", (void*)glTexCoord1fv, 1, arg0);
       glad_glTexCoord1fv(arg0);
      _post_call_callback_gl("glTexCoord1fv", (void*)glTexCoord1fv, 1, arg0);
      
  }
  PFNGLTEXCOORD1FVPROC glad_debug_glTexCoord1fv = glad_debug_impl_glTexCoord1fv;
  PFNGLTEXCOORD1IPROC glad_glTexCoord1i;
  void APIENTRY glad_debug_impl_glTexCoord1i(GLint arg0) {    
      _pre_call_callback_gl("glTexCoord1i", (void*)glTexCoord1i, 1, arg0);
       glad_glTexCoord1i(arg0);
      _post_call_callback_gl("glTexCoord1i", (void*)glTexCoord1i, 1, arg0);
      
  }
  PFNGLTEXCOORD1IPROC glad_debug_glTexCoord1i = glad_debug_impl_glTexCoord1i;
  PFNGLTEXCOORD1IVPROC glad_glTexCoord1iv;
  void APIENTRY glad_debug_impl_glTexCoord1iv(const GLint * arg0) {    
      _pre_call_callback_gl("glTexCoord1iv", (void*)glTexCoord1iv, 1, arg0);
       glad_glTexCoord1iv(arg0);
      _post_call_callback_gl("glTexCoord1iv", (void*)glTexCoord1iv, 1, arg0);
      
  }
  PFNGLTEXCOORD1IVPROC glad_debug_glTexCoord1iv = glad_debug_impl_glTexCoord1iv;
  PFNGLTEXCOORD1SPROC glad_glTexCoord1s;
  void APIENTRY glad_debug_impl_glTexCoord1s(GLshort arg0) {    
      _pre_call_callback_gl("glTexCoord1s", (void*)glTexCoord1s, 1, arg0);
       glad_glTexCoord1s(arg0);
      _post_call_callback_gl("glTexCoord1s", (void*)glTexCoord1s, 1, arg0);
      
  }
  PFNGLTEXCOORD1SPROC glad_debug_glTexCoord1s = glad_debug_impl_glTexCoord1s;
  PFNGLTEXCOORD1SVPROC glad_glTexCoord1sv;
  void APIENTRY glad_debug_impl_glTexCoord1sv(const GLshort * arg0) {    
      _pre_call_callback_gl("glTexCoord1sv", (void*)glTexCoord1sv, 1, arg0);
       glad_glTexCoord1sv(arg0);
      _post_call_callback_gl("glTexCoord1sv", (void*)glTexCoord1sv, 1, arg0);
      
  }
  PFNGLTEXCOORD1SVPROC glad_debug_glTexCoord1sv = glad_debug_impl_glTexCoord1sv;
  PFNGLTEXCOORD2DPROC glad_glTexCoord2d;
  void APIENTRY glad_debug_impl_glTexCoord2d(GLdouble arg0, GLdouble arg1) {    
      _pre_call_callback_gl("glTexCoord2d", (void*)glTexCoord2d, 2, arg0, arg1);
       glad_glTexCoord2d(arg0, arg1);
      _post_call_callback_gl("glTexCoord2d", (void*)glTexCoord2d, 2, arg0, arg1);
      
  }
  PFNGLTEXCOORD2DPROC glad_debug_glTexCoord2d = glad_debug_impl_glTexCoord2d;
  PFNGLTEXCOORD2DVPROC glad_glTexCoord2dv;
  void APIENTRY glad_debug_impl_glTexCoord2dv(const GLdouble * arg0) {    
      _pre_call_callback_gl("glTexCoord2dv", (void*)glTexCoord2dv, 1, arg0);
       glad_glTexCoord2dv(arg0);
      _post_call_callback_gl("glTexCoord2dv", (void*)glTexCoord2dv, 1, arg0);
      
  }
  PFNGLTEXCOORD2DVPROC glad_debug_glTexCoord2dv = glad_debug_impl_glTexCoord2dv;
  PFNGLTEXCOORD2FPROC glad_glTexCoord2f;
  void APIENTRY glad_debug_impl_glTexCoord2f(GLfloat arg0, GLfloat arg1) {    
      _pre_call_callback_gl("glTexCoord2f", (void*)glTexCoord2f, 2, arg0, arg1);
       glad_glTexCoord2f(arg0, arg1);
      _post_call_callback_gl("glTexCoord2f", (void*)glTexCoord2f, 2, arg0, arg1);
      
  }
  PFNGLTEXCOORD2FPROC glad_debug_glTexCoord2f = glad_debug_impl_glTexCoord2f;
  PFNGLTEXCOORD2FVPROC glad_glTexCoord2fv;
  void APIENTRY glad_debug_impl_glTexCoord2fv(const GLfloat * arg0) {    
      _pre_call_callback_gl("glTexCoord2fv", (void*)glTexCoord2fv, 1, arg0);
       glad_glTexCoord2fv(arg0);
      _post_call_callback_gl("glTexCoord2fv", (void*)glTexCoord2fv, 1, arg0);
      
  }
  PFNGLTEXCOORD2FVPROC glad_debug_glTexCoord2fv = glad_debug_impl_glTexCoord2fv;
  PFNGLTEXCOORD2IPROC glad_glTexCoord2i;
  void APIENTRY glad_debug_impl_glTexCoord2i(GLint arg0, GLint arg1) {    
      _pre_call_callback_gl("glTexCoord2i", (void*)glTexCoord2i, 2, arg0, arg1);
       glad_glTexCoord2i(arg0, arg1);
      _post_call_callback_gl("glTexCoord2i", (void*)glTexCoord2i, 2, arg0, arg1);
      
  }
  PFNGLTEXCOORD2IPROC glad_debug_glTexCoord2i = glad_debug_impl_glTexCoord2i;
  PFNGLTEXCOORD2IVPROC glad_glTexCoord2iv;
  void APIENTRY glad_debug_impl_glTexCoord2iv(const GLint * arg0) {    
      _pre_call_callback_gl("glTexCoord2iv", (void*)glTexCoord2iv, 1, arg0);
       glad_glTexCoord2iv(arg0);
      _post_call_callback_gl("glTexCoord2iv", (void*)glTexCoord2iv, 1, arg0);
      
  }
  PFNGLTEXCOORD2IVPROC glad_debug_glTexCoord2iv = glad_debug_impl_glTexCoord2iv;
  PFNGLTEXCOORD2SPROC glad_glTexCoord2s;
  void APIENTRY glad_debug_impl_glTexCoord2s(GLshort arg0, GLshort arg1) {    
      _pre_call_callback_gl("glTexCoord2s", (void*)glTexCoord2s, 2, arg0, arg1);
       glad_glTexCoord2s(arg0, arg1);
      _post_call_callback_gl("glTexCoord2s", (void*)glTexCoord2s, 2, arg0, arg1);
      
  }
  PFNGLTEXCOORD2SPROC glad_debug_glTexCoord2s = glad_debug_impl_glTexCoord2s;
  PFNGLTEXCOORD2SVPROC glad_glTexCoord2sv;
  void APIENTRY glad_debug_impl_glTexCoord2sv(const GLshort * arg0) {    
      _pre_call_callback_gl("glTexCoord2sv", (void*)glTexCoord2sv, 1, arg0);
       glad_glTexCoord2sv(arg0);
      _post_call_callback_gl("glTexCoord2sv", (void*)glTexCoord2sv, 1, arg0);
      
  }
  PFNGLTEXCOORD2SVPROC glad_debug_glTexCoord2sv = glad_debug_impl_glTexCoord2sv;
  PFNGLTEXCOORD3DPROC glad_glTexCoord3d;
  void APIENTRY glad_debug_impl_glTexCoord3d(GLdouble arg0, GLdouble arg1, GLdouble arg2) {    
      _pre_call_callback_gl("glTexCoord3d", (void*)glTexCoord3d, 3, arg0, arg1, arg2);
       glad_glTexCoord3d(arg0, arg1, arg2);
      _post_call_callback_gl("glTexCoord3d", (void*)glTexCoord3d, 3, arg0, arg1, arg2);
      
  }
  PFNGLTEXCOORD3DPROC glad_debug_glTexCoord3d = glad_debug_impl_glTexCoord3d;
  PFNGLTEXCOORD3DVPROC glad_glTexCoord3dv;
  void APIENTRY glad_debug_impl_glTexCoord3dv(const GLdouble * arg0) {    
      _pre_call_callback_gl("glTexCoord3dv", (void*)glTexCoord3dv, 1, arg0);
       glad_glTexCoord3dv(arg0);
      _post_call_callback_gl("glTexCoord3dv", (void*)glTexCoord3dv, 1, arg0);
      
  }
  PFNGLTEXCOORD3DVPROC glad_debug_glTexCoord3dv = glad_debug_impl_glTexCoord3dv;
  PFNGLTEXCOORD3FPROC glad_glTexCoord3f;
  void APIENTRY glad_debug_impl_glTexCoord3f(GLfloat arg0, GLfloat arg1, GLfloat arg2) {    
      _pre_call_callback_gl("glTexCoord3f", (void*)glTexCoord3f, 3, arg0, arg1, arg2);
       glad_glTexCoord3f(arg0, arg1, arg2);
      _post_call_callback_gl("glTexCoord3f", (void*)glTexCoord3f, 3, arg0, arg1, arg2);
      
  }
  PFNGLTEXCOORD3FPROC glad_debug_glTexCoord3f = glad_debug_impl_glTexCoord3f;
  PFNGLTEXCOORD3FVPROC glad_glTexCoord3fv;
  void APIENTRY glad_debug_impl_glTexCoord3fv(const GLfloat * arg0) {    
      _pre_call_callback_gl("glTexCoord3fv", (void*)glTexCoord3fv, 1, arg0);
       glad_glTexCoord3fv(arg0);
      _post_call_callback_gl("glTexCoord3fv", (void*)glTexCoord3fv, 1, arg0);
      
  }
  PFNGLTEXCOORD3FVPROC glad_debug_glTexCoord3fv = glad_debug_impl_glTexCoord3fv;
  PFNGLTEXCOORD3IPROC glad_glTexCoord3i;
  void APIENTRY glad_debug_impl_glTexCoord3i(GLint arg0, GLint arg1, GLint arg2) {    
      _pre_call_callback_gl("glTexCoord3i", (void*)glTexCoord3i, 3, arg0, arg1, arg2);
       glad_glTexCoord3i(arg0, arg1, arg2);
      _post_call_callback_gl("glTexCoord3i", (void*)glTexCoord3i, 3, arg0, arg1, arg2);
      
  }
  PFNGLTEXCOORD3IPROC glad_debug_glTexCoord3i = glad_debug_impl_glTexCoord3i;
  PFNGLTEXCOORD3IVPROC glad_glTexCoord3iv;
  void APIENTRY glad_debug_impl_glTexCoord3iv(const GLint * arg0) {    
      _pre_call_callback_gl("glTexCoord3iv", (void*)glTexCoord3iv, 1, arg0);
       glad_glTexCoord3iv(arg0);
      _post_call_callback_gl("glTexCoord3iv", (void*)glTexCoord3iv, 1, arg0);
      
  }
  PFNGLTEXCOORD3IVPROC glad_debug_glTexCoord3iv = glad_debug_impl_glTexCoord3iv;
  PFNGLTEXCOORD3SPROC glad_glTexCoord3s;
  void APIENTRY glad_debug_impl_glTexCoord3s(GLshort arg0, GLshort arg1, GLshort arg2) {    
      _pre_call_callback_gl("glTexCoord3s", (void*)glTexCoord3s, 3, arg0, arg1, arg2);
       glad_glTexCoord3s(arg0, arg1, arg2);
      _post_call_callback_gl("glTexCoord3s", (void*)glTexCoord3s, 3, arg0, arg1, arg2);
      
  }
  PFNGLTEXCOORD3SPROC glad_debug_glTexCoord3s = glad_debug_impl_glTexCoord3s;
  PFNGLTEXCOORD3SVPROC glad_glTexCoord3sv;
  void APIENTRY glad_debug_impl_glTexCoord3sv(const GLshort * arg0) {    
      _pre_call_callback_gl("glTexCoord3sv", (void*)glTexCoord3sv, 1, arg0);
       glad_glTexCoord3sv(arg0);
      _post_call_callback_gl("glTexCoord3sv", (void*)glTexCoord3sv, 1, arg0);
      
  }
  PFNGLTEXCOORD3SVPROC glad_debug_glTexCoord3sv = glad_debug_impl_glTexCoord3sv;
  PFNGLTEXCOORD4DPROC glad_glTexCoord4d;
  void APIENTRY glad_debug_impl_glTexCoord4d(GLdouble arg0, GLdouble arg1, GLdouble arg2, GLdouble arg3) {    
      _pre_call_callback_gl("glTexCoord4d", (void*)glTexCoord4d, 4, arg0, arg1, arg2, arg3);
       glad_glTexCoord4d(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glTexCoord4d", (void*)glTexCoord4d, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLTEXCOORD4DPROC glad_debug_glTexCoord4d = glad_debug_impl_glTexCoord4d;
  PFNGLTEXCOORD4DVPROC glad_glTexCoord4dv;
  void APIENTRY glad_debug_impl_glTexCoord4dv(const GLdouble * arg0) {    
      _pre_call_callback_gl("glTexCoord4dv", (void*)glTexCoord4dv, 1, arg0);
       glad_glTexCoord4dv(arg0);
      _post_call_callback_gl("glTexCoord4dv", (void*)glTexCoord4dv, 1, arg0);
      
  }
  PFNGLTEXCOORD4DVPROC glad_debug_glTexCoord4dv = glad_debug_impl_glTexCoord4dv;
  PFNGLTEXCOORD4FPROC glad_glTexCoord4f;
  void APIENTRY glad_debug_impl_glTexCoord4f(GLfloat arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3) {    
      _pre_call_callback_gl("glTexCoord4f", (void*)glTexCoord4f, 4, arg0, arg1, arg2, arg3);
       glad_glTexCoord4f(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glTexCoord4f", (void*)glTexCoord4f, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLTEXCOORD4FPROC glad_debug_glTexCoord4f = glad_debug_impl_glTexCoord4f;
  PFNGLTEXCOORD4FVPROC glad_glTexCoord4fv;
  void APIENTRY glad_debug_impl_glTexCoord4fv(const GLfloat * arg0) {    
      _pre_call_callback_gl("glTexCoord4fv", (void*)glTexCoord4fv, 1, arg0);
       glad_glTexCoord4fv(arg0);
      _post_call_callback_gl("glTexCoord4fv", (void*)glTexCoord4fv, 1, arg0);
      
  }
  PFNGLTEXCOORD4FVPROC glad_debug_glTexCoord4fv = glad_debug_impl_glTexCoord4fv;
  PFNGLTEXCOORD4IPROC glad_glTexCoord4i;
  void APIENTRY glad_debug_impl_glTexCoord4i(GLint arg0, GLint arg1, GLint arg2, GLint arg3) {    
      _pre_call_callback_gl("glTexCoord4i", (void*)glTexCoord4i, 4, arg0, arg1, arg2, arg3);
       glad_glTexCoord4i(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glTexCoord4i", (void*)glTexCoord4i, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLTEXCOORD4IPROC glad_debug_glTexCoord4i = glad_debug_impl_glTexCoord4i;
  PFNGLTEXCOORD4IVPROC glad_glTexCoord4iv;
  void APIENTRY glad_debug_impl_glTexCoord4iv(const GLint * arg0) {    
      _pre_call_callback_gl("glTexCoord4iv", (void*)glTexCoord4iv, 1, arg0);
       glad_glTexCoord4iv(arg0);
      _post_call_callback_gl("glTexCoord4iv", (void*)glTexCoord4iv, 1, arg0);
      
  }
  PFNGLTEXCOORD4IVPROC glad_debug_glTexCoord4iv = glad_debug_impl_glTexCoord4iv;
  PFNGLTEXCOORD4SPROC glad_glTexCoord4s;
  void APIENTRY glad_debug_impl_glTexCoord4s(GLshort arg0, GLshort arg1, GLshort arg2, GLshort arg3) {    
      _pre_call_callback_gl("glTexCoord4s", (void*)glTexCoord4s, 4, arg0, arg1, arg2, arg3);
       glad_glTexCoord4s(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glTexCoord4s", (void*)glTexCoord4s, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLTEXCOORD4SPROC glad_debug_glTexCoord4s = glad_debug_impl_glTexCoord4s;
  PFNGLTEXCOORD4SVPROC glad_glTexCoord4sv;
  void APIENTRY glad_debug_impl_glTexCoord4sv(const GLshort * arg0) {    
      _pre_call_callback_gl("glTexCoord4sv", (void*)glTexCoord4sv, 1, arg0);
       glad_glTexCoord4sv(arg0);
      _post_call_callback_gl("glTexCoord4sv", (void*)glTexCoord4sv, 1, arg0);
      
  }
  PFNGLTEXCOORD4SVPROC glad_debug_glTexCoord4sv = glad_debug_impl_glTexCoord4sv;
  PFNGLTEXCOORDP1UIPROC glad_glTexCoordP1ui;
  void APIENTRY glad_debug_impl_glTexCoordP1ui(GLenum arg0, GLuint arg1) {    
      _pre_call_callback_gl("glTexCoordP1ui", (void*)glTexCoordP1ui, 2, arg0, arg1);
       glad_glTexCoordP1ui(arg0, arg1);
      _post_call_callback_gl("glTexCoordP1ui", (void*)glTexCoordP1ui, 2, arg0, arg1);
      
  }
  PFNGLTEXCOORDP1UIPROC glad_debug_glTexCoordP1ui = glad_debug_impl_glTexCoordP1ui;
  PFNGLTEXCOORDP1UIVPROC glad_glTexCoordP1uiv;
  void APIENTRY glad_debug_impl_glTexCoordP1uiv(GLenum arg0, const GLuint * arg1) {    
      _pre_call_callback_gl("glTexCoordP1uiv", (void*)glTexCoordP1uiv, 2, arg0, arg1);
       glad_glTexCoordP1uiv(arg0, arg1);
      _post_call_callback_gl("glTexCoordP1uiv", (void*)glTexCoordP1uiv, 2, arg0, arg1);
      
  }
  PFNGLTEXCOORDP1UIVPROC glad_debug_glTexCoordP1uiv = glad_debug_impl_glTexCoordP1uiv;
  PFNGLTEXCOORDP2UIPROC glad_glTexCoordP2ui;
  void APIENTRY glad_debug_impl_glTexCoordP2ui(GLenum arg0, GLuint arg1) {    
      _pre_call_callback_gl("glTexCoordP2ui", (void*)glTexCoordP2ui, 2, arg0, arg1);
       glad_glTexCoordP2ui(arg0, arg1);
      _post_call_callback_gl("glTexCoordP2ui", (void*)glTexCoordP2ui, 2, arg0, arg1);
      
  }
  PFNGLTEXCOORDP2UIPROC glad_debug_glTexCoordP2ui = glad_debug_impl_glTexCoordP2ui;
  PFNGLTEXCOORDP2UIVPROC glad_glTexCoordP2uiv;
  void APIENTRY glad_debug_impl_glTexCoordP2uiv(GLenum arg0, const GLuint * arg1) {    
      _pre_call_callback_gl("glTexCoordP2uiv", (void*)glTexCoordP2uiv, 2, arg0, arg1);
       glad_glTexCoordP2uiv(arg0, arg1);
      _post_call_callback_gl("glTexCoordP2uiv", (void*)glTexCoordP2uiv, 2, arg0, arg1);
      
  }
  PFNGLTEXCOORDP2UIVPROC glad_debug_glTexCoordP2uiv = glad_debug_impl_glTexCoordP2uiv;
  PFNGLTEXCOORDP3UIPROC glad_glTexCoordP3ui;
  void APIENTRY glad_debug_impl_glTexCoordP3ui(GLenum arg0, GLuint arg1) {    
      _pre_call_callback_gl("glTexCoordP3ui", (void*)glTexCoordP3ui, 2, arg0, arg1);
       glad_glTexCoordP3ui(arg0, arg1);
      _post_call_callback_gl("glTexCoordP3ui", (void*)glTexCoordP3ui, 2, arg0, arg1);
      
  }
  PFNGLTEXCOORDP3UIPROC glad_debug_glTexCoordP3ui = glad_debug_impl_glTexCoordP3ui;
  PFNGLTEXCOORDP3UIVPROC glad_glTexCoordP3uiv;
  void APIENTRY glad_debug_impl_glTexCoordP3uiv(GLenum arg0, const GLuint * arg1) {    
      _pre_call_callback_gl("glTexCoordP3uiv", (void*)glTexCoordP3uiv, 2, arg0, arg1);
       glad_glTexCoordP3uiv(arg0, arg1);
      _post_call_callback_gl("glTexCoordP3uiv", (void*)glTexCoordP3uiv, 2, arg0, arg1);
      
  }
  PFNGLTEXCOORDP3UIVPROC glad_debug_glTexCoordP3uiv = glad_debug_impl_glTexCoordP3uiv;
  PFNGLTEXCOORDP4UIPROC glad_glTexCoordP4ui;
  void APIENTRY glad_debug_impl_glTexCoordP4ui(GLenum arg0, GLuint arg1) {    
      _pre_call_callback_gl("glTexCoordP4ui", (void*)glTexCoordP4ui, 2, arg0, arg1);
       glad_glTexCoordP4ui(arg0, arg1);
      _post_call_callback_gl("glTexCoordP4ui", (void*)glTexCoordP4ui, 2, arg0, arg1);
      
  }
  PFNGLTEXCOORDP4UIPROC glad_debug_glTexCoordP4ui = glad_debug_impl_glTexCoordP4ui;
  PFNGLTEXCOORDP4UIVPROC glad_glTexCoordP4uiv;
  void APIENTRY glad_debug_impl_glTexCoordP4uiv(GLenum arg0, const GLuint * arg1) {    
      _pre_call_callback_gl("glTexCoordP4uiv", (void*)glTexCoordP4uiv, 2, arg0, arg1);
       glad_glTexCoordP4uiv(arg0, arg1);
      _post_call_callback_gl("glTexCoordP4uiv", (void*)glTexCoordP4uiv, 2, arg0, arg1);
      
  }
  PFNGLTEXCOORDP4UIVPROC glad_debug_glTexCoordP4uiv = glad_debug_impl_glTexCoordP4uiv;
  PFNGLTEXCOORDPOINTERPROC glad_glTexCoordPointer;
  void APIENTRY glad_debug_impl_glTexCoordPointer(GLint arg0, GLenum arg1, GLsizei arg2, const void * arg3) {    
      _pre_call_callback_gl("glTexCoordPointer", (void*)glTexCoordPointer, 4, arg0, arg1, arg2, arg3);
       glad_glTexCoordPointer(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glTexCoordPointer", (void*)glTexCoordPointer, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLTEXCOORDPOINTERPROC glad_debug_glTexCoordPointer = glad_debug_impl_glTexCoordPointer;
  PFNGLTEXENVFPROC glad_glTexEnvf;
  void APIENTRY glad_debug_impl_glTexEnvf(GLenum arg0, GLenum arg1, GLfloat arg2) {    
      _pre_call_callback_gl("glTexEnvf", (void*)glTexEnvf, 3, arg0, arg1, arg2);
       glad_glTexEnvf(arg0, arg1, arg2);
      _post_call_callback_gl("glTexEnvf", (void*)glTexEnvf, 3, arg0, arg1, arg2);
      
  }
  PFNGLTEXENVFPROC glad_debug_glTexEnvf = glad_debug_impl_glTexEnvf;
  PFNGLTEXENVFVPROC glad_glTexEnvfv;
  void APIENTRY glad_debug_impl_glTexEnvfv(GLenum arg0, GLenum arg1, const GLfloat * arg2) {    
      _pre_call_callback_gl("glTexEnvfv", (void*)glTexEnvfv, 3, arg0, arg1, arg2);
       glad_glTexEnvfv(arg0, arg1, arg2);
      _post_call_callback_gl("glTexEnvfv", (void*)glTexEnvfv, 3, arg0, arg1, arg2);
      
  }
  PFNGLTEXENVFVPROC glad_debug_glTexEnvfv = glad_debug_impl_glTexEnvfv;
  PFNGLTEXENVIPROC glad_glTexEnvi;
  void APIENTRY glad_debug_impl_glTexEnvi(GLenum arg0, GLenum arg1, GLint arg2) {    
      _pre_call_callback_gl("glTexEnvi", (void*)glTexEnvi, 3, arg0, arg1, arg2);
       glad_glTexEnvi(arg0, arg1, arg2);
      _post_call_callback_gl("glTexEnvi", (void*)glTexEnvi, 3, arg0, arg1, arg2);
      
  }
  PFNGLTEXENVIPROC glad_debug_glTexEnvi = glad_debug_impl_glTexEnvi;
  PFNGLTEXENVIVPROC glad_glTexEnviv;
  void APIENTRY glad_debug_impl_glTexEnviv(GLenum arg0, GLenum arg1, const GLint * arg2) {    
      _pre_call_callback_gl("glTexEnviv", (void*)glTexEnviv, 3, arg0, arg1, arg2);
       glad_glTexEnviv(arg0, arg1, arg2);
      _post_call_callback_gl("glTexEnviv", (void*)glTexEnviv, 3, arg0, arg1, arg2);
      
  }
  PFNGLTEXENVIVPROC glad_debug_glTexEnviv = glad_debug_impl_glTexEnviv;
  PFNGLTEXGENDPROC glad_glTexGend;
  void APIENTRY glad_debug_impl_glTexGend(GLenum arg0, GLenum arg1, GLdouble arg2) {    
      _pre_call_callback_gl("glTexGend", (void*)glTexGend, 3, arg0, arg1, arg2);
       glad_glTexGend(arg0, arg1, arg2);
      _post_call_callback_gl("glTexGend", (void*)glTexGend, 3, arg0, arg1, arg2);
      
  }
  PFNGLTEXGENDPROC glad_debug_glTexGend = glad_debug_impl_glTexGend;
  PFNGLTEXGENDVPROC glad_glTexGendv;
  void APIENTRY glad_debug_impl_glTexGendv(GLenum arg0, GLenum arg1, const GLdouble * arg2) {    
      _pre_call_callback_gl("glTexGendv", (void*)glTexGendv, 3, arg0, arg1, arg2);
       glad_glTexGendv(arg0, arg1, arg2);
      _post_call_callback_gl("glTexGendv", (void*)glTexGendv, 3, arg0, arg1, arg2);
      
  }
  PFNGLTEXGENDVPROC glad_debug_glTexGendv = glad_debug_impl_glTexGendv;
  PFNGLTEXGENFPROC glad_glTexGenf;
  void APIENTRY glad_debug_impl_glTexGenf(GLenum arg0, GLenum arg1, GLfloat arg2) {    
      _pre_call_callback_gl("glTexGenf", (void*)glTexGenf, 3, arg0, arg1, arg2);
       glad_glTexGenf(arg0, arg1, arg2);
      _post_call_callback_gl("glTexGenf", (void*)glTexGenf, 3, arg0, arg1, arg2);
      
  }
  PFNGLTEXGENFPROC glad_debug_glTexGenf = glad_debug_impl_glTexGenf;
  PFNGLTEXGENFVPROC glad_glTexGenfv;
  void APIENTRY glad_debug_impl_glTexGenfv(GLenum arg0, GLenum arg1, const GLfloat * arg2) {    
      _pre_call_callback_gl("glTexGenfv", (void*)glTexGenfv, 3, arg0, arg1, arg2);
       glad_glTexGenfv(arg0, arg1, arg2);
      _post_call_callback_gl("glTexGenfv", (void*)glTexGenfv, 3, arg0, arg1, arg2);
      
  }
  PFNGLTEXGENFVPROC glad_debug_glTexGenfv = glad_debug_impl_glTexGenfv;
  PFNGLTEXGENIPROC glad_glTexGeni;
  void APIENTRY glad_debug_impl_glTexGeni(GLenum arg0, GLenum arg1, GLint arg2) {    
      _pre_call_callback_gl("glTexGeni", (void*)glTexGeni, 3, arg0, arg1, arg2);
       glad_glTexGeni(arg0, arg1, arg2);
      _post_call_callback_gl("glTexGeni", (void*)glTexGeni, 3, arg0, arg1, arg2);
      
  }
  PFNGLTEXGENIPROC glad_debug_glTexGeni = glad_debug_impl_glTexGeni;
  PFNGLTEXGENIVPROC glad_glTexGeniv;
  void APIENTRY glad_debug_impl_glTexGeniv(GLenum arg0, GLenum arg1, const GLint * arg2) {    
      _pre_call_callback_gl("glTexGeniv", (void*)glTexGeniv, 3, arg0, arg1, arg2);
       glad_glTexGeniv(arg0, arg1, arg2);
      _post_call_callback_gl("glTexGeniv", (void*)glTexGeniv, 3, arg0, arg1, arg2);
      
  }
  PFNGLTEXGENIVPROC glad_debug_glTexGeniv = glad_debug_impl_glTexGeniv;
  PFNGLTEXIMAGE1DPROC glad_glTexImage1D;
  void APIENTRY glad_debug_impl_glTexImage1D(GLenum arg0, GLint arg1, GLint arg2, GLsizei arg3, GLint arg4, GLenum arg5, GLenum arg6, const void * arg7) {    
      _pre_call_callback_gl("glTexImage1D", (void*)glTexImage1D, 8, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
       glad_glTexImage1D(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
      _post_call_callback_gl("glTexImage1D", (void*)glTexImage1D, 8, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
      
  }
  PFNGLTEXIMAGE1DPROC glad_debug_glTexImage1D = glad_debug_impl_glTexImage1D;
  PFNGLTEXIMAGE2DPROC glad_glTexImage2D;
  void APIENTRY glad_debug_impl_glTexImage2D(GLenum arg0, GLint arg1, GLint arg2, GLsizei arg3, GLsizei arg4, GLint arg5, GLenum arg6, GLenum arg7, const void * arg8) {    
      _pre_call_callback_gl("glTexImage2D", (void*)glTexImage2D, 9, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
       glad_glTexImage2D(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
      _post_call_callback_gl("glTexImage2D", (void*)glTexImage2D, 9, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
      
  }
  PFNGLTEXIMAGE2DPROC glad_debug_glTexImage2D = glad_debug_impl_glTexImage2D;
  PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample;
  void APIENTRY glad_debug_impl_glTexImage2DMultisample(GLenum arg0, GLsizei arg1, GLenum arg2, GLsizei arg3, GLsizei arg4, GLboolean arg5) {    
      _pre_call_callback_gl("glTexImage2DMultisample", (void*)glTexImage2DMultisample, 6, arg0, arg1, arg2, arg3, arg4, arg5);
       glad_glTexImage2DMultisample(arg0, arg1, arg2, arg3, arg4, arg5);
      _post_call_callback_gl("glTexImage2DMultisample", (void*)glTexImage2DMultisample, 6, arg0, arg1, arg2, arg3, arg4, arg5);
      
  }
  PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_debug_glTexImage2DMultisample = glad_debug_impl_glTexImage2DMultisample;
  PFNGLTEXIMAGE3DPROC glad_glTexImage3D;
  void APIENTRY glad_debug_impl_glTexImage3D(GLenum arg0, GLint arg1, GLint arg2, GLsizei arg3, GLsizei arg4, GLsizei arg5, GLint arg6, GLenum arg7, GLenum arg8, const void * arg9) {    
      _pre_call_callback_gl("glTexImage3D", (void*)glTexImage3D, 10, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
       glad_glTexImage3D(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
      _post_call_callback_gl("glTexImage3D", (void*)glTexImage3D, 10, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
      
  }
  PFNGLTEXIMAGE3DPROC glad_debug_glTexImage3D = glad_debug_impl_glTexImage3D;
  PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample;
  void APIENTRY glad_debug_impl_glTexImage3DMultisample(GLenum arg0, GLsizei arg1, GLenum arg2, GLsizei arg3, GLsizei arg4, GLsizei arg5, GLboolean arg6) {    
      _pre_call_callback_gl("glTexImage3DMultisample", (void*)glTexImage3DMultisample, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
       glad_glTexImage3DMultisample(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      _post_call_callback_gl("glTexImage3DMultisample", (void*)glTexImage3DMultisample, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      
  }
  PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_debug_glTexImage3DMultisample = glad_debug_impl_glTexImage3DMultisample;
  PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv;
  void APIENTRY glad_debug_impl_glTexParameterIiv(GLenum arg0, GLenum arg1, const GLint * arg2) {    
      _pre_call_callback_gl("glTexParameterIiv", (void*)glTexParameterIiv, 3, arg0, arg1, arg2);
       glad_glTexParameterIiv(arg0, arg1, arg2);
      _post_call_callback_gl("glTexParameterIiv", (void*)glTexParameterIiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLTEXPARAMETERIIVPROC glad_debug_glTexParameterIiv = glad_debug_impl_glTexParameterIiv;
  PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv;
  void APIENTRY glad_debug_impl_glTexParameterIuiv(GLenum arg0, GLenum arg1, const GLuint * arg2) {    
      _pre_call_callback_gl("glTexParameterIuiv", (void*)glTexParameterIuiv, 3, arg0, arg1, arg2);
       glad_glTexParameterIuiv(arg0, arg1, arg2);
      _post_call_callback_gl("glTexParameterIuiv", (void*)glTexParameterIuiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLTEXPARAMETERIUIVPROC glad_debug_glTexParameterIuiv = glad_debug_impl_glTexParameterIuiv;
  PFNGLTEXPARAMETERFPROC glad_glTexParameterf;
  void APIENTRY glad_debug_impl_glTexParameterf(GLenum arg0, GLenum arg1, GLfloat arg2) {    
      _pre_call_callback_gl("glTexParameterf", (void*)glTexParameterf, 3, arg0, arg1, arg2);
       glad_glTexParameterf(arg0, arg1, arg2);
      _post_call_callback_gl("glTexParameterf", (void*)glTexParameterf, 3, arg0, arg1, arg2);
      
  }
  PFNGLTEXPARAMETERFPROC glad_debug_glTexParameterf = glad_debug_impl_glTexParameterf;
  PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv;
  void APIENTRY glad_debug_impl_glTexParameterfv(GLenum arg0, GLenum arg1, const GLfloat * arg2) {    
      _pre_call_callback_gl("glTexParameterfv", (void*)glTexParameterfv, 3, arg0, arg1, arg2);
       glad_glTexParameterfv(arg0, arg1, arg2);
      _post_call_callback_gl("glTexParameterfv", (void*)glTexParameterfv, 3, arg0, arg1, arg2);
      
  }
  PFNGLTEXPARAMETERFVPROC glad_debug_glTexParameterfv = glad_debug_impl_glTexParameterfv;
  PFNGLTEXPARAMETERIPROC glad_glTexParameteri;
  void APIENTRY glad_debug_impl_glTexParameteri(GLenum arg0, GLenum arg1, GLint arg2) {    
      _pre_call_callback_gl("glTexParameteri", (void*)glTexParameteri, 3, arg0, arg1, arg2);
       glad_glTexParameteri(arg0, arg1, arg2);
      _post_call_callback_gl("glTexParameteri", (void*)glTexParameteri, 3, arg0, arg1, arg2);
      
  }
  PFNGLTEXPARAMETERIPROC glad_debug_glTexParameteri = glad_debug_impl_glTexParameteri;
  PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv;
  void APIENTRY glad_debug_impl_glTexParameteriv(GLenum arg0, GLenum arg1, const GLint * arg2) {    
      _pre_call_callback_gl("glTexParameteriv", (void*)glTexParameteriv, 3, arg0, arg1, arg2);
       glad_glTexParameteriv(arg0, arg1, arg2);
      _post_call_callback_gl("glTexParameteriv", (void*)glTexParameteriv, 3, arg0, arg1, arg2);
      
  }
  PFNGLTEXPARAMETERIVPROC glad_debug_glTexParameteriv = glad_debug_impl_glTexParameteriv;
  PFNGLTEXSTORAGE1DPROC glad_glTexStorage1D;
  void APIENTRY glad_debug_impl_glTexStorage1D(GLenum arg0, GLsizei arg1, GLenum arg2, GLsizei arg3) {    
      _pre_call_callback_gl("glTexStorage1D", (void*)glTexStorage1D, 4, arg0, arg1, arg2, arg3);
       glad_glTexStorage1D(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glTexStorage1D", (void*)glTexStorage1D, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLTEXSTORAGE1DPROC glad_debug_glTexStorage1D = glad_debug_impl_glTexStorage1D;
  PFNGLTEXSTORAGE2DPROC glad_glTexStorage2D;
  void APIENTRY glad_debug_impl_glTexStorage2D(GLenum arg0, GLsizei arg1, GLenum arg2, GLsizei arg3, GLsizei arg4) {    
      _pre_call_callback_gl("glTexStorage2D", (void*)glTexStorage2D, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glTexStorage2D(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glTexStorage2D", (void*)glTexStorage2D, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLTEXSTORAGE2DPROC glad_debug_glTexStorage2D = glad_debug_impl_glTexStorage2D;
  PFNGLTEXSTORAGE2DMULTISAMPLEPROC glad_glTexStorage2DMultisample;
  void APIENTRY glad_debug_impl_glTexStorage2DMultisample(GLenum arg0, GLsizei arg1, GLenum arg2, GLsizei arg3, GLsizei arg4, GLboolean arg5) {    
      _pre_call_callback_gl("glTexStorage2DMultisample", (void*)glTexStorage2DMultisample, 6, arg0, arg1, arg2, arg3, arg4, arg5);
       glad_glTexStorage2DMultisample(arg0, arg1, arg2, arg3, arg4, arg5);
      _post_call_callback_gl("glTexStorage2DMultisample", (void*)glTexStorage2DMultisample, 6, arg0, arg1, arg2, arg3, arg4, arg5);
      
  }
  PFNGLTEXSTORAGE2DMULTISAMPLEPROC glad_debug_glTexStorage2DMultisample = glad_debug_impl_glTexStorage2DMultisample;
  PFNGLTEXSTORAGE3DPROC glad_glTexStorage3D;
  void APIENTRY glad_debug_impl_glTexStorage3D(GLenum arg0, GLsizei arg1, GLenum arg2, GLsizei arg3, GLsizei arg4, GLsizei arg5) {    
      _pre_call_callback_gl("glTexStorage3D", (void*)glTexStorage3D, 6, arg0, arg1, arg2, arg3, arg4, arg5);
       glad_glTexStorage3D(arg0, arg1, arg2, arg3, arg4, arg5);
      _post_call_callback_gl("glTexStorage3D", (void*)glTexStorage3D, 6, arg0, arg1, arg2, arg3, arg4, arg5);
      
  }
  PFNGLTEXSTORAGE3DPROC glad_debug_glTexStorage3D = glad_debug_impl_glTexStorage3D;
  PFNGLTEXSTORAGE3DMULTISAMPLEPROC glad_glTexStorage3DMultisample;
  void APIENTRY glad_debug_impl_glTexStorage3DMultisample(GLenum arg0, GLsizei arg1, GLenum arg2, GLsizei arg3, GLsizei arg4, GLsizei arg5, GLboolean arg6) {    
      _pre_call_callback_gl("glTexStorage3DMultisample", (void*)glTexStorage3DMultisample, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
       glad_glTexStorage3DMultisample(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      _post_call_callback_gl("glTexStorage3DMultisample", (void*)glTexStorage3DMultisample, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      
  }
  PFNGLTEXSTORAGE3DMULTISAMPLEPROC glad_debug_glTexStorage3DMultisample = glad_debug_impl_glTexStorage3DMultisample;
  PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D;
  void APIENTRY glad_debug_impl_glTexSubImage1D(GLenum arg0, GLint arg1, GLint arg2, GLsizei arg3, GLenum arg4, GLenum arg5, const void * arg6) {    
      _pre_call_callback_gl("glTexSubImage1D", (void*)glTexSubImage1D, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
       glad_glTexSubImage1D(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      _post_call_callback_gl("glTexSubImage1D", (void*)glTexSubImage1D, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
      
  }
  PFNGLTEXSUBIMAGE1DPROC glad_debug_glTexSubImage1D = glad_debug_impl_glTexSubImage1D;
  PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D;
  void APIENTRY glad_debug_impl_glTexSubImage2D(GLenum arg0, GLint arg1, GLint arg2, GLint arg3, GLsizei arg4, GLsizei arg5, GLenum arg6, GLenum arg7, const void * arg8) {    
      _pre_call_callback_gl("glTexSubImage2D", (void*)glTexSubImage2D, 9, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
       glad_glTexSubImage2D(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
      _post_call_callback_gl("glTexSubImage2D", (void*)glTexSubImage2D, 9, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
      
  }
  PFNGLTEXSUBIMAGE2DPROC glad_debug_glTexSubImage2D = glad_debug_impl_glTexSubImage2D;
  PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D;
  void APIENTRY glad_debug_impl_glTexSubImage3D(GLenum arg0, GLint arg1, GLint arg2, GLint arg3, GLint arg4, GLsizei arg5, GLsizei arg6, GLsizei arg7, GLenum arg8, GLenum arg9, const void * arg10) {    
      _pre_call_callback_gl("glTexSubImage3D", (void*)glTexSubImage3D, 11, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
       glad_glTexSubImage3D(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
      _post_call_callback_gl("glTexSubImage3D", (void*)glTexSubImage3D, 11, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
      
  }
  PFNGLTEXSUBIMAGE3DPROC glad_debug_glTexSubImage3D = glad_debug_impl_glTexSubImage3D;
  PFNGLTEXTUREVIEWPROC glad_glTextureView;
  void APIENTRY glad_debug_impl_glTextureView(GLuint arg0, GLenum arg1, GLuint arg2, GLenum arg3, GLuint arg4, GLuint arg5, GLuint arg6, GLuint arg7) {    
      _pre_call_callback_gl("glTextureView", (void*)glTextureView, 8, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
       glad_glTextureView(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
      _post_call_callback_gl("glTextureView", (void*)glTextureView, 8, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
      
  }
  PFNGLTEXTUREVIEWPROC glad_debug_glTextureView = glad_debug_impl_glTextureView;
  PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings;
  void APIENTRY glad_debug_impl_glTransformFeedbackVaryings(GLuint arg0, GLsizei arg1, const GLchar *const* arg2, GLenum arg3) {    
      _pre_call_callback_gl("glTransformFeedbackVaryings", (void*)glTransformFeedbackVaryings, 4, arg0, arg1, arg2, arg3);
       glad_glTransformFeedbackVaryings(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glTransformFeedbackVaryings", (void*)glTransformFeedbackVaryings, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_debug_glTransformFeedbackVaryings = glad_debug_impl_glTransformFeedbackVaryings;
  PFNGLTRANSLATEDPROC glad_glTranslated;
  void APIENTRY glad_debug_impl_glTranslated(GLdouble arg0, GLdouble arg1, GLdouble arg2) {    
      _pre_call_callback_gl("glTranslated", (void*)glTranslated, 3, arg0, arg1, arg2);
       glad_glTranslated(arg0, arg1, arg2);
      _post_call_callback_gl("glTranslated", (void*)glTranslated, 3, arg0, arg1, arg2);
      
  }
  PFNGLTRANSLATEDPROC glad_debug_glTranslated = glad_debug_impl_glTranslated;
  PFNGLTRANSLATEFPROC glad_glTranslatef;
  void APIENTRY glad_debug_impl_glTranslatef(GLfloat arg0, GLfloat arg1, GLfloat arg2) {    
      _pre_call_callback_gl("glTranslatef", (void*)glTranslatef, 3, arg0, arg1, arg2);
       glad_glTranslatef(arg0, arg1, arg2);
      _post_call_callback_gl("glTranslatef", (void*)glTranslatef, 3, arg0, arg1, arg2);
      
  }
  PFNGLTRANSLATEFPROC glad_debug_glTranslatef = glad_debug_impl_glTranslatef;
  PFNGLUNIFORM1DPROC glad_glUniform1d;
  void APIENTRY glad_debug_impl_glUniform1d(GLint arg0, GLdouble arg1) {    
      _pre_call_callback_gl("glUniform1d", (void*)glUniform1d, 2, arg0, arg1);
       glad_glUniform1d(arg0, arg1);
      _post_call_callback_gl("glUniform1d", (void*)glUniform1d, 2, arg0, arg1);
      
  }
  PFNGLUNIFORM1DPROC glad_debug_glUniform1d = glad_debug_impl_glUniform1d;
  PFNGLUNIFORM1DVPROC glad_glUniform1dv;
  void APIENTRY glad_debug_impl_glUniform1dv(GLint arg0, GLsizei arg1, const GLdouble * arg2) {    
      _pre_call_callback_gl("glUniform1dv", (void*)glUniform1dv, 3, arg0, arg1, arg2);
       glad_glUniform1dv(arg0, arg1, arg2);
      _post_call_callback_gl("glUniform1dv", (void*)glUniform1dv, 3, arg0, arg1, arg2);
      
  }
  PFNGLUNIFORM1DVPROC glad_debug_glUniform1dv = glad_debug_impl_glUniform1dv;
  PFNGLUNIFORM1FPROC glad_glUniform1f;
  void APIENTRY glad_debug_impl_glUniform1f(GLint arg0, GLfloat arg1) {    
      _pre_call_callback_gl("glUniform1f", (void*)glUniform1f, 2, arg0, arg1);
       glad_glUniform1f(arg0, arg1);
      _post_call_callback_gl("glUniform1f", (void*)glUniform1f, 2, arg0, arg1);
      
  }
  PFNGLUNIFORM1FPROC glad_debug_glUniform1f = glad_debug_impl_glUniform1f;
  PFNGLUNIFORM1FVPROC glad_glUniform1fv;
  void APIENTRY glad_debug_impl_glUniform1fv(GLint arg0, GLsizei arg1, const GLfloat * arg2) {    
      _pre_call_callback_gl("glUniform1fv", (void*)glUniform1fv, 3, arg0, arg1, arg2);
       glad_glUniform1fv(arg0, arg1, arg2);
      _post_call_callback_gl("glUniform1fv", (void*)glUniform1fv, 3, arg0, arg1, arg2);
      
  }
  PFNGLUNIFORM1FVPROC glad_debug_glUniform1fv = glad_debug_impl_glUniform1fv;
  PFNGLUNIFORM1IPROC glad_glUniform1i;
  void APIENTRY glad_debug_impl_glUniform1i(GLint arg0, GLint arg1) {    
      _pre_call_callback_gl("glUniform1i", (void*)glUniform1i, 2, arg0, arg1);
       glad_glUniform1i(arg0, arg1);
      _post_call_callback_gl("glUniform1i", (void*)glUniform1i, 2, arg0, arg1);
      
  }
  PFNGLUNIFORM1IPROC glad_debug_glUniform1i = glad_debug_impl_glUniform1i;
  PFNGLUNIFORM1IVPROC glad_glUniform1iv;
  void APIENTRY glad_debug_impl_glUniform1iv(GLint arg0, GLsizei arg1, const GLint * arg2) {    
      _pre_call_callback_gl("glUniform1iv", (void*)glUniform1iv, 3, arg0, arg1, arg2);
       glad_glUniform1iv(arg0, arg1, arg2);
      _post_call_callback_gl("glUniform1iv", (void*)glUniform1iv, 3, arg0, arg1, arg2);
      
  }
  PFNGLUNIFORM1IVPROC glad_debug_glUniform1iv = glad_debug_impl_glUniform1iv;
  PFNGLUNIFORM1UIPROC glad_glUniform1ui;
  void APIENTRY glad_debug_impl_glUniform1ui(GLint arg0, GLuint arg1) {    
      _pre_call_callback_gl("glUniform1ui", (void*)glUniform1ui, 2, arg0, arg1);
       glad_glUniform1ui(arg0, arg1);
      _post_call_callback_gl("glUniform1ui", (void*)glUniform1ui, 2, arg0, arg1);
      
  }
  PFNGLUNIFORM1UIPROC glad_debug_glUniform1ui = glad_debug_impl_glUniform1ui;
  PFNGLUNIFORM1UIVPROC glad_glUniform1uiv;
  void APIENTRY glad_debug_impl_glUniform1uiv(GLint arg0, GLsizei arg1, const GLuint * arg2) {    
      _pre_call_callback_gl("glUniform1uiv", (void*)glUniform1uiv, 3, arg0, arg1, arg2);
       glad_glUniform1uiv(arg0, arg1, arg2);
      _post_call_callback_gl("glUniform1uiv", (void*)glUniform1uiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLUNIFORM1UIVPROC glad_debug_glUniform1uiv = glad_debug_impl_glUniform1uiv;
  PFNGLUNIFORM2DPROC glad_glUniform2d;
  void APIENTRY glad_debug_impl_glUniform2d(GLint arg0, GLdouble arg1, GLdouble arg2) {    
      _pre_call_callback_gl("glUniform2d", (void*)glUniform2d, 3, arg0, arg1, arg2);
       glad_glUniform2d(arg0, arg1, arg2);
      _post_call_callback_gl("glUniform2d", (void*)glUniform2d, 3, arg0, arg1, arg2);
      
  }
  PFNGLUNIFORM2DPROC glad_debug_glUniform2d = glad_debug_impl_glUniform2d;
  PFNGLUNIFORM2DVPROC glad_glUniform2dv;
  void APIENTRY glad_debug_impl_glUniform2dv(GLint arg0, GLsizei arg1, const GLdouble * arg2) {    
      _pre_call_callback_gl("glUniform2dv", (void*)glUniform2dv, 3, arg0, arg1, arg2);
       glad_glUniform2dv(arg0, arg1, arg2);
      _post_call_callback_gl("glUniform2dv", (void*)glUniform2dv, 3, arg0, arg1, arg2);
      
  }
  PFNGLUNIFORM2DVPROC glad_debug_glUniform2dv = glad_debug_impl_glUniform2dv;
  PFNGLUNIFORM2FPROC glad_glUniform2f;
  void APIENTRY glad_debug_impl_glUniform2f(GLint arg0, GLfloat arg1, GLfloat arg2) {    
      _pre_call_callback_gl("glUniform2f", (void*)glUniform2f, 3, arg0, arg1, arg2);
       glad_glUniform2f(arg0, arg1, arg2);
      _post_call_callback_gl("glUniform2f", (void*)glUniform2f, 3, arg0, arg1, arg2);
      
  }
  PFNGLUNIFORM2FPROC glad_debug_glUniform2f = glad_debug_impl_glUniform2f;
  PFNGLUNIFORM2FVPROC glad_glUniform2fv;
  void APIENTRY glad_debug_impl_glUniform2fv(GLint arg0, GLsizei arg1, const GLfloat * arg2) {    
      _pre_call_callback_gl("glUniform2fv", (void*)glUniform2fv, 3, arg0, arg1, arg2);
       glad_glUniform2fv(arg0, arg1, arg2);
      _post_call_callback_gl("glUniform2fv", (void*)glUniform2fv, 3, arg0, arg1, arg2);
      
  }
  PFNGLUNIFORM2FVPROC glad_debug_glUniform2fv = glad_debug_impl_glUniform2fv;
  PFNGLUNIFORM2IPROC glad_glUniform2i;
  void APIENTRY glad_debug_impl_glUniform2i(GLint arg0, GLint arg1, GLint arg2) {    
      _pre_call_callback_gl("glUniform2i", (void*)glUniform2i, 3, arg0, arg1, arg2);
       glad_glUniform2i(arg0, arg1, arg2);
      _post_call_callback_gl("glUniform2i", (void*)glUniform2i, 3, arg0, arg1, arg2);
      
  }
  PFNGLUNIFORM2IPROC glad_debug_glUniform2i = glad_debug_impl_glUniform2i;
  PFNGLUNIFORM2IVPROC glad_glUniform2iv;
  void APIENTRY glad_debug_impl_glUniform2iv(GLint arg0, GLsizei arg1, const GLint * arg2) {    
      _pre_call_callback_gl("glUniform2iv", (void*)glUniform2iv, 3, arg0, arg1, arg2);
       glad_glUniform2iv(arg0, arg1, arg2);
      _post_call_callback_gl("glUniform2iv", (void*)glUniform2iv, 3, arg0, arg1, arg2);
      
  }
  PFNGLUNIFORM2IVPROC glad_debug_glUniform2iv = glad_debug_impl_glUniform2iv;
  PFNGLUNIFORM2UIPROC glad_glUniform2ui;
  void APIENTRY glad_debug_impl_glUniform2ui(GLint arg0, GLuint arg1, GLuint arg2) {    
      _pre_call_callback_gl("glUniform2ui", (void*)glUniform2ui, 3, arg0, arg1, arg2);
       glad_glUniform2ui(arg0, arg1, arg2);
      _post_call_callback_gl("glUniform2ui", (void*)glUniform2ui, 3, arg0, arg1, arg2);
      
  }
  PFNGLUNIFORM2UIPROC glad_debug_glUniform2ui = glad_debug_impl_glUniform2ui;
  PFNGLUNIFORM2UIVPROC glad_glUniform2uiv;
  void APIENTRY glad_debug_impl_glUniform2uiv(GLint arg0, GLsizei arg1, const GLuint * arg2) {    
      _pre_call_callback_gl("glUniform2uiv", (void*)glUniform2uiv, 3, arg0, arg1, arg2);
       glad_glUniform2uiv(arg0, arg1, arg2);
      _post_call_callback_gl("glUniform2uiv", (void*)glUniform2uiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLUNIFORM2UIVPROC glad_debug_glUniform2uiv = glad_debug_impl_glUniform2uiv;
  PFNGLUNIFORM3DPROC glad_glUniform3d;
  void APIENTRY glad_debug_impl_glUniform3d(GLint arg0, GLdouble arg1, GLdouble arg2, GLdouble arg3) {    
      _pre_call_callback_gl("glUniform3d", (void*)glUniform3d, 4, arg0, arg1, arg2, arg3);
       glad_glUniform3d(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glUniform3d", (void*)glUniform3d, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLUNIFORM3DPROC glad_debug_glUniform3d = glad_debug_impl_glUniform3d;
  PFNGLUNIFORM3DVPROC glad_glUniform3dv;
  void APIENTRY glad_debug_impl_glUniform3dv(GLint arg0, GLsizei arg1, const GLdouble * arg2) {    
      _pre_call_callback_gl("glUniform3dv", (void*)glUniform3dv, 3, arg0, arg1, arg2);
       glad_glUniform3dv(arg0, arg1, arg2);
      _post_call_callback_gl("glUniform3dv", (void*)glUniform3dv, 3, arg0, arg1, arg2);
      
  }
  PFNGLUNIFORM3DVPROC glad_debug_glUniform3dv = glad_debug_impl_glUniform3dv;
  PFNGLUNIFORM3FPROC glad_glUniform3f;
  void APIENTRY glad_debug_impl_glUniform3f(GLint arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3) {    
      _pre_call_callback_gl("glUniform3f", (void*)glUniform3f, 4, arg0, arg1, arg2, arg3);
       glad_glUniform3f(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glUniform3f", (void*)glUniform3f, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLUNIFORM3FPROC glad_debug_glUniform3f = glad_debug_impl_glUniform3f;
  PFNGLUNIFORM3FVPROC glad_glUniform3fv;
  void APIENTRY glad_debug_impl_glUniform3fv(GLint arg0, GLsizei arg1, const GLfloat * arg2) {    
      _pre_call_callback_gl("glUniform3fv", (void*)glUniform3fv, 3, arg0, arg1, arg2);
       glad_glUniform3fv(arg0, arg1, arg2);
      _post_call_callback_gl("glUniform3fv", (void*)glUniform3fv, 3, arg0, arg1, arg2);
      
  }
  PFNGLUNIFORM3FVPROC glad_debug_glUniform3fv = glad_debug_impl_glUniform3fv;
  PFNGLUNIFORM3IPROC glad_glUniform3i;
  void APIENTRY glad_debug_impl_glUniform3i(GLint arg0, GLint arg1, GLint arg2, GLint arg3) {    
      _pre_call_callback_gl("glUniform3i", (void*)glUniform3i, 4, arg0, arg1, arg2, arg3);
       glad_glUniform3i(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glUniform3i", (void*)glUniform3i, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLUNIFORM3IPROC glad_debug_glUniform3i = glad_debug_impl_glUniform3i;
  PFNGLUNIFORM3IVPROC glad_glUniform3iv;
  void APIENTRY glad_debug_impl_glUniform3iv(GLint arg0, GLsizei arg1, const GLint * arg2) {    
      _pre_call_callback_gl("glUniform3iv", (void*)glUniform3iv, 3, arg0, arg1, arg2);
       glad_glUniform3iv(arg0, arg1, arg2);
      _post_call_callback_gl("glUniform3iv", (void*)glUniform3iv, 3, arg0, arg1, arg2);
      
  }
  PFNGLUNIFORM3IVPROC glad_debug_glUniform3iv = glad_debug_impl_glUniform3iv;
  PFNGLUNIFORM3UIPROC glad_glUniform3ui;
  void APIENTRY glad_debug_impl_glUniform3ui(GLint arg0, GLuint arg1, GLuint arg2, GLuint arg3) {    
      _pre_call_callback_gl("glUniform3ui", (void*)glUniform3ui, 4, arg0, arg1, arg2, arg3);
       glad_glUniform3ui(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glUniform3ui", (void*)glUniform3ui, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLUNIFORM3UIPROC glad_debug_glUniform3ui = glad_debug_impl_glUniform3ui;
  PFNGLUNIFORM3UIVPROC glad_glUniform3uiv;
  void APIENTRY glad_debug_impl_glUniform3uiv(GLint arg0, GLsizei arg1, const GLuint * arg2) {    
      _pre_call_callback_gl("glUniform3uiv", (void*)glUniform3uiv, 3, arg0, arg1, arg2);
       glad_glUniform3uiv(arg0, arg1, arg2);
      _post_call_callback_gl("glUniform3uiv", (void*)glUniform3uiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLUNIFORM3UIVPROC glad_debug_glUniform3uiv = glad_debug_impl_glUniform3uiv;
  PFNGLUNIFORM4DPROC glad_glUniform4d;
  void APIENTRY glad_debug_impl_glUniform4d(GLint arg0, GLdouble arg1, GLdouble arg2, GLdouble arg3, GLdouble arg4) {    
      _pre_call_callback_gl("glUniform4d", (void*)glUniform4d, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glUniform4d(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glUniform4d", (void*)glUniform4d, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLUNIFORM4DPROC glad_debug_glUniform4d = glad_debug_impl_glUniform4d;
  PFNGLUNIFORM4DVPROC glad_glUniform4dv;
  void APIENTRY glad_debug_impl_glUniform4dv(GLint arg0, GLsizei arg1, const GLdouble * arg2) {    
      _pre_call_callback_gl("glUniform4dv", (void*)glUniform4dv, 3, arg0, arg1, arg2);
       glad_glUniform4dv(arg0, arg1, arg2);
      _post_call_callback_gl("glUniform4dv", (void*)glUniform4dv, 3, arg0, arg1, arg2);
      
  }
  PFNGLUNIFORM4DVPROC glad_debug_glUniform4dv = glad_debug_impl_glUniform4dv;
  PFNGLUNIFORM4FPROC glad_glUniform4f;
  void APIENTRY glad_debug_impl_glUniform4f(GLint arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3, GLfloat arg4) {    
      _pre_call_callback_gl("glUniform4f", (void*)glUniform4f, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glUniform4f(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glUniform4f", (void*)glUniform4f, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLUNIFORM4FPROC glad_debug_glUniform4f = glad_debug_impl_glUniform4f;
  PFNGLUNIFORM4FVPROC glad_glUniform4fv;
  void APIENTRY glad_debug_impl_glUniform4fv(GLint arg0, GLsizei arg1, const GLfloat * arg2) {    
      _pre_call_callback_gl("glUniform4fv", (void*)glUniform4fv, 3, arg0, arg1, arg2);
       glad_glUniform4fv(arg0, arg1, arg2);
      _post_call_callback_gl("glUniform4fv", (void*)glUniform4fv, 3, arg0, arg1, arg2);
      
  }
  PFNGLUNIFORM4FVPROC glad_debug_glUniform4fv = glad_debug_impl_glUniform4fv;
  PFNGLUNIFORM4IPROC glad_glUniform4i;
  void APIENTRY glad_debug_impl_glUniform4i(GLint arg0, GLint arg1, GLint arg2, GLint arg3, GLint arg4) {    
      _pre_call_callback_gl("glUniform4i", (void*)glUniform4i, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glUniform4i(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glUniform4i", (void*)glUniform4i, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLUNIFORM4IPROC glad_debug_glUniform4i = glad_debug_impl_glUniform4i;
  PFNGLUNIFORM4IVPROC glad_glUniform4iv;
  void APIENTRY glad_debug_impl_glUniform4iv(GLint arg0, GLsizei arg1, const GLint * arg2) {    
      _pre_call_callback_gl("glUniform4iv", (void*)glUniform4iv, 3, arg0, arg1, arg2);
       glad_glUniform4iv(arg0, arg1, arg2);
      _post_call_callback_gl("glUniform4iv", (void*)glUniform4iv, 3, arg0, arg1, arg2);
      
  }
  PFNGLUNIFORM4IVPROC glad_debug_glUniform4iv = glad_debug_impl_glUniform4iv;
  PFNGLUNIFORM4UIPROC glad_glUniform4ui;
  void APIENTRY glad_debug_impl_glUniform4ui(GLint arg0, GLuint arg1, GLuint arg2, GLuint arg3, GLuint arg4) {    
      _pre_call_callback_gl("glUniform4ui", (void*)glUniform4ui, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glUniform4ui(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glUniform4ui", (void*)glUniform4ui, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLUNIFORM4UIPROC glad_debug_glUniform4ui = glad_debug_impl_glUniform4ui;
  PFNGLUNIFORM4UIVPROC glad_glUniform4uiv;
  void APIENTRY glad_debug_impl_glUniform4uiv(GLint arg0, GLsizei arg1, const GLuint * arg2) {    
      _pre_call_callback_gl("glUniform4uiv", (void*)glUniform4uiv, 3, arg0, arg1, arg2);
       glad_glUniform4uiv(arg0, arg1, arg2);
      _post_call_callback_gl("glUniform4uiv", (void*)glUniform4uiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLUNIFORM4UIVPROC glad_debug_glUniform4uiv = glad_debug_impl_glUniform4uiv;
  PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding;
  void APIENTRY glad_debug_impl_glUniformBlockBinding(GLuint arg0, GLuint arg1, GLuint arg2) {    
      _pre_call_callback_gl("glUniformBlockBinding", (void*)glUniformBlockBinding, 3, arg0, arg1, arg2);
       glad_glUniformBlockBinding(arg0, arg1, arg2);
      _post_call_callback_gl("glUniformBlockBinding", (void*)glUniformBlockBinding, 3, arg0, arg1, arg2);
      
  }
  PFNGLUNIFORMBLOCKBINDINGPROC glad_debug_glUniformBlockBinding = glad_debug_impl_glUniformBlockBinding;
  PFNGLUNIFORMMATRIX2DVPROC glad_glUniformMatrix2dv;
  void APIENTRY glad_debug_impl_glUniformMatrix2dv(GLint arg0, GLsizei arg1, GLboolean arg2, const GLdouble * arg3) {    
      _pre_call_callback_gl("glUniformMatrix2dv", (void*)glUniformMatrix2dv, 4, arg0, arg1, arg2, arg3);
       glad_glUniformMatrix2dv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glUniformMatrix2dv", (void*)glUniformMatrix2dv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLUNIFORMMATRIX2DVPROC glad_debug_glUniformMatrix2dv = glad_debug_impl_glUniformMatrix2dv;
  PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv;
  void APIENTRY glad_debug_impl_glUniformMatrix2fv(GLint arg0, GLsizei arg1, GLboolean arg2, const GLfloat * arg3) {    
      _pre_call_callback_gl("glUniformMatrix2fv", (void*)glUniformMatrix2fv, 4, arg0, arg1, arg2, arg3);
       glad_glUniformMatrix2fv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glUniformMatrix2fv", (void*)glUniformMatrix2fv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLUNIFORMMATRIX2FVPROC glad_debug_glUniformMatrix2fv = glad_debug_impl_glUniformMatrix2fv;
  PFNGLUNIFORMMATRIX2X3DVPROC glad_glUniformMatrix2x3dv;
  void APIENTRY glad_debug_impl_glUniformMatrix2x3dv(GLint arg0, GLsizei arg1, GLboolean arg2, const GLdouble * arg3) {    
      _pre_call_callback_gl("glUniformMatrix2x3dv", (void*)glUniformMatrix2x3dv, 4, arg0, arg1, arg2, arg3);
       glad_glUniformMatrix2x3dv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glUniformMatrix2x3dv", (void*)glUniformMatrix2x3dv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLUNIFORMMATRIX2X3DVPROC glad_debug_glUniformMatrix2x3dv = glad_debug_impl_glUniformMatrix2x3dv;
  PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv;
  void APIENTRY glad_debug_impl_glUniformMatrix2x3fv(GLint arg0, GLsizei arg1, GLboolean arg2, const GLfloat * arg3) {    
      _pre_call_callback_gl("glUniformMatrix2x3fv", (void*)glUniformMatrix2x3fv, 4, arg0, arg1, arg2, arg3);
       glad_glUniformMatrix2x3fv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glUniformMatrix2x3fv", (void*)glUniformMatrix2x3fv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLUNIFORMMATRIX2X3FVPROC glad_debug_glUniformMatrix2x3fv = glad_debug_impl_glUniformMatrix2x3fv;
  PFNGLUNIFORMMATRIX2X4DVPROC glad_glUniformMatrix2x4dv;
  void APIENTRY glad_debug_impl_glUniformMatrix2x4dv(GLint arg0, GLsizei arg1, GLboolean arg2, const GLdouble * arg3) {    
      _pre_call_callback_gl("glUniformMatrix2x4dv", (void*)glUniformMatrix2x4dv, 4, arg0, arg1, arg2, arg3);
       glad_glUniformMatrix2x4dv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glUniformMatrix2x4dv", (void*)glUniformMatrix2x4dv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLUNIFORMMATRIX2X4DVPROC glad_debug_glUniformMatrix2x4dv = glad_debug_impl_glUniformMatrix2x4dv;
  PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv;
  void APIENTRY glad_debug_impl_glUniformMatrix2x4fv(GLint arg0, GLsizei arg1, GLboolean arg2, const GLfloat * arg3) {    
      _pre_call_callback_gl("glUniformMatrix2x4fv", (void*)glUniformMatrix2x4fv, 4, arg0, arg1, arg2, arg3);
       glad_glUniformMatrix2x4fv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glUniformMatrix2x4fv", (void*)glUniformMatrix2x4fv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLUNIFORMMATRIX2X4FVPROC glad_debug_glUniformMatrix2x4fv = glad_debug_impl_glUniformMatrix2x4fv;
  PFNGLUNIFORMMATRIX3DVPROC glad_glUniformMatrix3dv;
  void APIENTRY glad_debug_impl_glUniformMatrix3dv(GLint arg0, GLsizei arg1, GLboolean arg2, const GLdouble * arg3) {    
      _pre_call_callback_gl("glUniformMatrix3dv", (void*)glUniformMatrix3dv, 4, arg0, arg1, arg2, arg3);
       glad_glUniformMatrix3dv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glUniformMatrix3dv", (void*)glUniformMatrix3dv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLUNIFORMMATRIX3DVPROC glad_debug_glUniformMatrix3dv = glad_debug_impl_glUniformMatrix3dv;
  PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv;
  void APIENTRY glad_debug_impl_glUniformMatrix3fv(GLint arg0, GLsizei arg1, GLboolean arg2, const GLfloat * arg3) {    
      _pre_call_callback_gl("glUniformMatrix3fv", (void*)glUniformMatrix3fv, 4, arg0, arg1, arg2, arg3);
       glad_glUniformMatrix3fv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glUniformMatrix3fv", (void*)glUniformMatrix3fv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLUNIFORMMATRIX3FVPROC glad_debug_glUniformMatrix3fv = glad_debug_impl_glUniformMatrix3fv;
  PFNGLUNIFORMMATRIX3X2DVPROC glad_glUniformMatrix3x2dv;
  void APIENTRY glad_debug_impl_glUniformMatrix3x2dv(GLint arg0, GLsizei arg1, GLboolean arg2, const GLdouble * arg3) {    
      _pre_call_callback_gl("glUniformMatrix3x2dv", (void*)glUniformMatrix3x2dv, 4, arg0, arg1, arg2, arg3);
       glad_glUniformMatrix3x2dv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glUniformMatrix3x2dv", (void*)glUniformMatrix3x2dv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLUNIFORMMATRIX3X2DVPROC glad_debug_glUniformMatrix3x2dv = glad_debug_impl_glUniformMatrix3x2dv;
  PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv;
  void APIENTRY glad_debug_impl_glUniformMatrix3x2fv(GLint arg0, GLsizei arg1, GLboolean arg2, const GLfloat * arg3) {    
      _pre_call_callback_gl("glUniformMatrix3x2fv", (void*)glUniformMatrix3x2fv, 4, arg0, arg1, arg2, arg3);
       glad_glUniformMatrix3x2fv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glUniformMatrix3x2fv", (void*)glUniformMatrix3x2fv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLUNIFORMMATRIX3X2FVPROC glad_debug_glUniformMatrix3x2fv = glad_debug_impl_glUniformMatrix3x2fv;
  PFNGLUNIFORMMATRIX3X4DVPROC glad_glUniformMatrix3x4dv;
  void APIENTRY glad_debug_impl_glUniformMatrix3x4dv(GLint arg0, GLsizei arg1, GLboolean arg2, const GLdouble * arg3) {    
      _pre_call_callback_gl("glUniformMatrix3x4dv", (void*)glUniformMatrix3x4dv, 4, arg0, arg1, arg2, arg3);
       glad_glUniformMatrix3x4dv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glUniformMatrix3x4dv", (void*)glUniformMatrix3x4dv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLUNIFORMMATRIX3X4DVPROC glad_debug_glUniformMatrix3x4dv = glad_debug_impl_glUniformMatrix3x4dv;
  PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv;
  void APIENTRY glad_debug_impl_glUniformMatrix3x4fv(GLint arg0, GLsizei arg1, GLboolean arg2, const GLfloat * arg3) {    
      _pre_call_callback_gl("glUniformMatrix3x4fv", (void*)glUniformMatrix3x4fv, 4, arg0, arg1, arg2, arg3);
       glad_glUniformMatrix3x4fv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glUniformMatrix3x4fv", (void*)glUniformMatrix3x4fv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLUNIFORMMATRIX3X4FVPROC glad_debug_glUniformMatrix3x4fv = glad_debug_impl_glUniformMatrix3x4fv;
  PFNGLUNIFORMMATRIX4DVPROC glad_glUniformMatrix4dv;
  void APIENTRY glad_debug_impl_glUniformMatrix4dv(GLint arg0, GLsizei arg1, GLboolean arg2, const GLdouble * arg3) {    
      _pre_call_callback_gl("glUniformMatrix4dv", (void*)glUniformMatrix4dv, 4, arg0, arg1, arg2, arg3);
       glad_glUniformMatrix4dv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glUniformMatrix4dv", (void*)glUniformMatrix4dv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLUNIFORMMATRIX4DVPROC glad_debug_glUniformMatrix4dv = glad_debug_impl_glUniformMatrix4dv;
  PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv;
  void APIENTRY glad_debug_impl_glUniformMatrix4fv(GLint arg0, GLsizei arg1, GLboolean arg2, const GLfloat * arg3) {    
      _pre_call_callback_gl("glUniformMatrix4fv", (void*)glUniformMatrix4fv, 4, arg0, arg1, arg2, arg3);
       glad_glUniformMatrix4fv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glUniformMatrix4fv", (void*)glUniformMatrix4fv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLUNIFORMMATRIX4FVPROC glad_debug_glUniformMatrix4fv = glad_debug_impl_glUniformMatrix4fv;
  PFNGLUNIFORMMATRIX4X2DVPROC glad_glUniformMatrix4x2dv;
  void APIENTRY glad_debug_impl_glUniformMatrix4x2dv(GLint arg0, GLsizei arg1, GLboolean arg2, const GLdouble * arg3) {    
      _pre_call_callback_gl("glUniformMatrix4x2dv", (void*)glUniformMatrix4x2dv, 4, arg0, arg1, arg2, arg3);
       glad_glUniformMatrix4x2dv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glUniformMatrix4x2dv", (void*)glUniformMatrix4x2dv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLUNIFORMMATRIX4X2DVPROC glad_debug_glUniformMatrix4x2dv = glad_debug_impl_glUniformMatrix4x2dv;
  PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv;
  void APIENTRY glad_debug_impl_glUniformMatrix4x2fv(GLint arg0, GLsizei arg1, GLboolean arg2, const GLfloat * arg3) {    
      _pre_call_callback_gl("glUniformMatrix4x2fv", (void*)glUniformMatrix4x2fv, 4, arg0, arg1, arg2, arg3);
       glad_glUniformMatrix4x2fv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glUniformMatrix4x2fv", (void*)glUniformMatrix4x2fv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLUNIFORMMATRIX4X2FVPROC glad_debug_glUniformMatrix4x2fv = glad_debug_impl_glUniformMatrix4x2fv;
  PFNGLUNIFORMMATRIX4X3DVPROC glad_glUniformMatrix4x3dv;
  void APIENTRY glad_debug_impl_glUniformMatrix4x3dv(GLint arg0, GLsizei arg1, GLboolean arg2, const GLdouble * arg3) {    
      _pre_call_callback_gl("glUniformMatrix4x3dv", (void*)glUniformMatrix4x3dv, 4, arg0, arg1, arg2, arg3);
       glad_glUniformMatrix4x3dv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glUniformMatrix4x3dv", (void*)glUniformMatrix4x3dv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLUNIFORMMATRIX4X3DVPROC glad_debug_glUniformMatrix4x3dv = glad_debug_impl_glUniformMatrix4x3dv;
  PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv;
  void APIENTRY glad_debug_impl_glUniformMatrix4x3fv(GLint arg0, GLsizei arg1, GLboolean arg2, const GLfloat * arg3) {    
      _pre_call_callback_gl("glUniformMatrix4x3fv", (void*)glUniformMatrix4x3fv, 4, arg0, arg1, arg2, arg3);
       glad_glUniformMatrix4x3fv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glUniformMatrix4x3fv", (void*)glUniformMatrix4x3fv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLUNIFORMMATRIX4X3FVPROC glad_debug_glUniformMatrix4x3fv = glad_debug_impl_glUniformMatrix4x3fv;
  PFNGLUNIFORMSUBROUTINESUIVPROC glad_glUniformSubroutinesuiv;
  void APIENTRY glad_debug_impl_glUniformSubroutinesuiv(GLenum arg0, GLsizei arg1, const GLuint * arg2) {    
      _pre_call_callback_gl("glUniformSubroutinesuiv", (void*)glUniformSubroutinesuiv, 3, arg0, arg1, arg2);
       glad_glUniformSubroutinesuiv(arg0, arg1, arg2);
      _post_call_callback_gl("glUniformSubroutinesuiv", (void*)glUniformSubroutinesuiv, 3, arg0, arg1, arg2);
      
  }
  PFNGLUNIFORMSUBROUTINESUIVPROC glad_debug_glUniformSubroutinesuiv = glad_debug_impl_glUniformSubroutinesuiv;
  PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer;
  GLboolean APIENTRY glad_debug_impl_glUnmapBuffer(GLenum arg0) {    
      GLboolean ret;
      _pre_call_callback_gl("glUnmapBuffer", (void*)glUnmapBuffer, 1, arg0);
      ret =  glad_glUnmapBuffer(arg0);
      _post_call_callback_gl("glUnmapBuffer", (void*)glUnmapBuffer, 1, arg0);
      return ret;
  }
  PFNGLUNMAPBUFFERPROC glad_debug_glUnmapBuffer = glad_debug_impl_glUnmapBuffer;
  PFNGLUSEPROGRAMPROC glad_glUseProgram;
  void APIENTRY glad_debug_impl_glUseProgram(GLuint arg0) {    
      _pre_call_callback_gl("glUseProgram", (void*)glUseProgram, 1, arg0);
       glad_glUseProgram(arg0);
      _post_call_callback_gl("glUseProgram", (void*)glUseProgram, 1, arg0);
      
  }
  PFNGLUSEPROGRAMPROC glad_debug_glUseProgram = glad_debug_impl_glUseProgram;
  PFNGLUSEPROGRAMSTAGESPROC glad_glUseProgramStages;
  void APIENTRY glad_debug_impl_glUseProgramStages(GLuint arg0, GLbitfield arg1, GLuint arg2) {    
      _pre_call_callback_gl("glUseProgramStages", (void*)glUseProgramStages, 3, arg0, arg1, arg2);
       glad_glUseProgramStages(arg0, arg1, arg2);
      _post_call_callback_gl("glUseProgramStages", (void*)glUseProgramStages, 3, arg0, arg1, arg2);
      
  }
  PFNGLUSEPROGRAMSTAGESPROC glad_debug_glUseProgramStages = glad_debug_impl_glUseProgramStages;
  PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram;
  void APIENTRY glad_debug_impl_glValidateProgram(GLuint arg0) {    
      _pre_call_callback_gl("glValidateProgram", (void*)glValidateProgram, 1, arg0);
       glad_glValidateProgram(arg0);
      _post_call_callback_gl("glValidateProgram", (void*)glValidateProgram, 1, arg0);
      
  }
  PFNGLVALIDATEPROGRAMPROC glad_debug_glValidateProgram = glad_debug_impl_glValidateProgram;
  PFNGLVALIDATEPROGRAMPIPELINEPROC glad_glValidateProgramPipeline;
  void APIENTRY glad_debug_impl_glValidateProgramPipeline(GLuint arg0) {    
      _pre_call_callback_gl("glValidateProgramPipeline", (void*)glValidateProgramPipeline, 1, arg0);
       glad_glValidateProgramPipeline(arg0);
      _post_call_callback_gl("glValidateProgramPipeline", (void*)glValidateProgramPipeline, 1, arg0);
      
  }
  PFNGLVALIDATEPROGRAMPIPELINEPROC glad_debug_glValidateProgramPipeline = glad_debug_impl_glValidateProgramPipeline;
  PFNGLVERTEX2DPROC glad_glVertex2d;
  void APIENTRY glad_debug_impl_glVertex2d(GLdouble arg0, GLdouble arg1) {    
      _pre_call_callback_gl("glVertex2d", (void*)glVertex2d, 2, arg0, arg1);
       glad_glVertex2d(arg0, arg1);
      _post_call_callback_gl("glVertex2d", (void*)glVertex2d, 2, arg0, arg1);
      
  }
  PFNGLVERTEX2DPROC glad_debug_glVertex2d = glad_debug_impl_glVertex2d;
  PFNGLVERTEX2DVPROC glad_glVertex2dv;
  void APIENTRY glad_debug_impl_glVertex2dv(const GLdouble * arg0) {    
      _pre_call_callback_gl("glVertex2dv", (void*)glVertex2dv, 1, arg0);
       glad_glVertex2dv(arg0);
      _post_call_callback_gl("glVertex2dv", (void*)glVertex2dv, 1, arg0);
      
  }
  PFNGLVERTEX2DVPROC glad_debug_glVertex2dv = glad_debug_impl_glVertex2dv;
  PFNGLVERTEX2FPROC glad_glVertex2f;
  void APIENTRY glad_debug_impl_glVertex2f(GLfloat arg0, GLfloat arg1) {    
      _pre_call_callback_gl("glVertex2f", (void*)glVertex2f, 2, arg0, arg1);
       glad_glVertex2f(arg0, arg1);
      _post_call_callback_gl("glVertex2f", (void*)glVertex2f, 2, arg0, arg1);
      
  }
  PFNGLVERTEX2FPROC glad_debug_glVertex2f = glad_debug_impl_glVertex2f;
  PFNGLVERTEX2FVPROC glad_glVertex2fv;
  void APIENTRY glad_debug_impl_glVertex2fv(const GLfloat * arg0) {    
      _pre_call_callback_gl("glVertex2fv", (void*)glVertex2fv, 1, arg0);
       glad_glVertex2fv(arg0);
      _post_call_callback_gl("glVertex2fv", (void*)glVertex2fv, 1, arg0);
      
  }
  PFNGLVERTEX2FVPROC glad_debug_glVertex2fv = glad_debug_impl_glVertex2fv;
  PFNGLVERTEX2IPROC glad_glVertex2i;
  void APIENTRY glad_debug_impl_glVertex2i(GLint arg0, GLint arg1) {    
      _pre_call_callback_gl("glVertex2i", (void*)glVertex2i, 2, arg0, arg1);
       glad_glVertex2i(arg0, arg1);
      _post_call_callback_gl("glVertex2i", (void*)glVertex2i, 2, arg0, arg1);
      
  }
  PFNGLVERTEX2IPROC glad_debug_glVertex2i = glad_debug_impl_glVertex2i;
  PFNGLVERTEX2IVPROC glad_glVertex2iv;
  void APIENTRY glad_debug_impl_glVertex2iv(const GLint * arg0) {    
      _pre_call_callback_gl("glVertex2iv", (void*)glVertex2iv, 1, arg0);
       glad_glVertex2iv(arg0);
      _post_call_callback_gl("glVertex2iv", (void*)glVertex2iv, 1, arg0);
      
  }
  PFNGLVERTEX2IVPROC glad_debug_glVertex2iv = glad_debug_impl_glVertex2iv;
  PFNGLVERTEX2SPROC glad_glVertex2s;
  void APIENTRY glad_debug_impl_glVertex2s(GLshort arg0, GLshort arg1) {    
      _pre_call_callback_gl("glVertex2s", (void*)glVertex2s, 2, arg0, arg1);
       glad_glVertex2s(arg0, arg1);
      _post_call_callback_gl("glVertex2s", (void*)glVertex2s, 2, arg0, arg1);
      
  }
  PFNGLVERTEX2SPROC glad_debug_glVertex2s = glad_debug_impl_glVertex2s;
  PFNGLVERTEX2SVPROC glad_glVertex2sv;
  void APIENTRY glad_debug_impl_glVertex2sv(const GLshort * arg0) {    
      _pre_call_callback_gl("glVertex2sv", (void*)glVertex2sv, 1, arg0);
       glad_glVertex2sv(arg0);
      _post_call_callback_gl("glVertex2sv", (void*)glVertex2sv, 1, arg0);
      
  }
  PFNGLVERTEX2SVPROC glad_debug_glVertex2sv = glad_debug_impl_glVertex2sv;
  PFNGLVERTEX3DPROC glad_glVertex3d;
  void APIENTRY glad_debug_impl_glVertex3d(GLdouble arg0, GLdouble arg1, GLdouble arg2) {    
      _pre_call_callback_gl("glVertex3d", (void*)glVertex3d, 3, arg0, arg1, arg2);
       glad_glVertex3d(arg0, arg1, arg2);
      _post_call_callback_gl("glVertex3d", (void*)glVertex3d, 3, arg0, arg1, arg2);
      
  }
  PFNGLVERTEX3DPROC glad_debug_glVertex3d = glad_debug_impl_glVertex3d;
  PFNGLVERTEX3DVPROC glad_glVertex3dv;
  void APIENTRY glad_debug_impl_glVertex3dv(const GLdouble * arg0) {    
      _pre_call_callback_gl("glVertex3dv", (void*)glVertex3dv, 1, arg0);
       glad_glVertex3dv(arg0);
      _post_call_callback_gl("glVertex3dv", (void*)glVertex3dv, 1, arg0);
      
  }
  PFNGLVERTEX3DVPROC glad_debug_glVertex3dv = glad_debug_impl_glVertex3dv;
  PFNGLVERTEX3FPROC glad_glVertex3f;
  void APIENTRY glad_debug_impl_glVertex3f(GLfloat arg0, GLfloat arg1, GLfloat arg2) {    
      _pre_call_callback_gl("glVertex3f", (void*)glVertex3f, 3, arg0, arg1, arg2);
       glad_glVertex3f(arg0, arg1, arg2);
      _post_call_callback_gl("glVertex3f", (void*)glVertex3f, 3, arg0, arg1, arg2);
      
  }
  PFNGLVERTEX3FPROC glad_debug_glVertex3f = glad_debug_impl_glVertex3f;
  PFNGLVERTEX3FVPROC glad_glVertex3fv;
  void APIENTRY glad_debug_impl_glVertex3fv(const GLfloat * arg0) {    
      _pre_call_callback_gl("glVertex3fv", (void*)glVertex3fv, 1, arg0);
       glad_glVertex3fv(arg0);
      _post_call_callback_gl("glVertex3fv", (void*)glVertex3fv, 1, arg0);
      
  }
  PFNGLVERTEX3FVPROC glad_debug_glVertex3fv = glad_debug_impl_glVertex3fv;
  PFNGLVERTEX3IPROC glad_glVertex3i;
  void APIENTRY glad_debug_impl_glVertex3i(GLint arg0, GLint arg1, GLint arg2) {    
      _pre_call_callback_gl("glVertex3i", (void*)glVertex3i, 3, arg0, arg1, arg2);
       glad_glVertex3i(arg0, arg1, arg2);
      _post_call_callback_gl("glVertex3i", (void*)glVertex3i, 3, arg0, arg1, arg2);
      
  }
  PFNGLVERTEX3IPROC glad_debug_glVertex3i = glad_debug_impl_glVertex3i;
  PFNGLVERTEX3IVPROC glad_glVertex3iv;
  void APIENTRY glad_debug_impl_glVertex3iv(const GLint * arg0) {    
      _pre_call_callback_gl("glVertex3iv", (void*)glVertex3iv, 1, arg0);
       glad_glVertex3iv(arg0);
      _post_call_callback_gl("glVertex3iv", (void*)glVertex3iv, 1, arg0);
      
  }
  PFNGLVERTEX3IVPROC glad_debug_glVertex3iv = glad_debug_impl_glVertex3iv;
  PFNGLVERTEX3SPROC glad_glVertex3s;
  void APIENTRY glad_debug_impl_glVertex3s(GLshort arg0, GLshort arg1, GLshort arg2) {    
      _pre_call_callback_gl("glVertex3s", (void*)glVertex3s, 3, arg0, arg1, arg2);
       glad_glVertex3s(arg0, arg1, arg2);
      _post_call_callback_gl("glVertex3s", (void*)glVertex3s, 3, arg0, arg1, arg2);
      
  }
  PFNGLVERTEX3SPROC glad_debug_glVertex3s = glad_debug_impl_glVertex3s;
  PFNGLVERTEX3SVPROC glad_glVertex3sv;
  void APIENTRY glad_debug_impl_glVertex3sv(const GLshort * arg0) {    
      _pre_call_callback_gl("glVertex3sv", (void*)glVertex3sv, 1, arg0);
       glad_glVertex3sv(arg0);
      _post_call_callback_gl("glVertex3sv", (void*)glVertex3sv, 1, arg0);
      
  }
  PFNGLVERTEX3SVPROC glad_debug_glVertex3sv = glad_debug_impl_glVertex3sv;
  PFNGLVERTEX4DPROC glad_glVertex4d;
  void APIENTRY glad_debug_impl_glVertex4d(GLdouble arg0, GLdouble arg1, GLdouble arg2, GLdouble arg3) {    
      _pre_call_callback_gl("glVertex4d", (void*)glVertex4d, 4, arg0, arg1, arg2, arg3);
       glad_glVertex4d(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glVertex4d", (void*)glVertex4d, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLVERTEX4DPROC glad_debug_glVertex4d = glad_debug_impl_glVertex4d;
  PFNGLVERTEX4DVPROC glad_glVertex4dv;
  void APIENTRY glad_debug_impl_glVertex4dv(const GLdouble * arg0) {    
      _pre_call_callback_gl("glVertex4dv", (void*)glVertex4dv, 1, arg0);
       glad_glVertex4dv(arg0);
      _post_call_callback_gl("glVertex4dv", (void*)glVertex4dv, 1, arg0);
      
  }
  PFNGLVERTEX4DVPROC glad_debug_glVertex4dv = glad_debug_impl_glVertex4dv;
  PFNGLVERTEX4FPROC glad_glVertex4f;
  void APIENTRY glad_debug_impl_glVertex4f(GLfloat arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3) {    
      _pre_call_callback_gl("glVertex4f", (void*)glVertex4f, 4, arg0, arg1, arg2, arg3);
       glad_glVertex4f(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glVertex4f", (void*)glVertex4f, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLVERTEX4FPROC glad_debug_glVertex4f = glad_debug_impl_glVertex4f;
  PFNGLVERTEX4FVPROC glad_glVertex4fv;
  void APIENTRY glad_debug_impl_glVertex4fv(const GLfloat * arg0) {    
      _pre_call_callback_gl("glVertex4fv", (void*)glVertex4fv, 1, arg0);
       glad_glVertex4fv(arg0);
      _post_call_callback_gl("glVertex4fv", (void*)glVertex4fv, 1, arg0);
      
  }
  PFNGLVERTEX4FVPROC glad_debug_glVertex4fv = glad_debug_impl_glVertex4fv;
  PFNGLVERTEX4IPROC glad_glVertex4i;
  void APIENTRY glad_debug_impl_glVertex4i(GLint arg0, GLint arg1, GLint arg2, GLint arg3) {    
      _pre_call_callback_gl("glVertex4i", (void*)glVertex4i, 4, arg0, arg1, arg2, arg3);
       glad_glVertex4i(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glVertex4i", (void*)glVertex4i, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLVERTEX4IPROC glad_debug_glVertex4i = glad_debug_impl_glVertex4i;
  PFNGLVERTEX4IVPROC glad_glVertex4iv;
  void APIENTRY glad_debug_impl_glVertex4iv(const GLint * arg0) {    
      _pre_call_callback_gl("glVertex4iv", (void*)glVertex4iv, 1, arg0);
       glad_glVertex4iv(arg0);
      _post_call_callback_gl("glVertex4iv", (void*)glVertex4iv, 1, arg0);
      
  }
  PFNGLVERTEX4IVPROC glad_debug_glVertex4iv = glad_debug_impl_glVertex4iv;
  PFNGLVERTEX4SPROC glad_glVertex4s;
  void APIENTRY glad_debug_impl_glVertex4s(GLshort arg0, GLshort arg1, GLshort arg2, GLshort arg3) {    
      _pre_call_callback_gl("glVertex4s", (void*)glVertex4s, 4, arg0, arg1, arg2, arg3);
       glad_glVertex4s(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glVertex4s", (void*)glVertex4s, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLVERTEX4SPROC glad_debug_glVertex4s = glad_debug_impl_glVertex4s;
  PFNGLVERTEX4SVPROC glad_glVertex4sv;
  void APIENTRY glad_debug_impl_glVertex4sv(const GLshort * arg0) {    
      _pre_call_callback_gl("glVertex4sv", (void*)glVertex4sv, 1, arg0);
       glad_glVertex4sv(arg0);
      _post_call_callback_gl("glVertex4sv", (void*)glVertex4sv, 1, arg0);
      
  }
  PFNGLVERTEX4SVPROC glad_debug_glVertex4sv = glad_debug_impl_glVertex4sv;
  PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d;
  void APIENTRY glad_debug_impl_glVertexAttrib1d(GLuint arg0, GLdouble arg1) {    
      _pre_call_callback_gl("glVertexAttrib1d", (void*)glVertexAttrib1d, 2, arg0, arg1);
       glad_glVertexAttrib1d(arg0, arg1);
      _post_call_callback_gl("glVertexAttrib1d", (void*)glVertexAttrib1d, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIB1DPROC glad_debug_glVertexAttrib1d = glad_debug_impl_glVertexAttrib1d;
  PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv;
  void APIENTRY glad_debug_impl_glVertexAttrib1dv(GLuint arg0, const GLdouble * arg1) {    
      _pre_call_callback_gl("glVertexAttrib1dv", (void*)glVertexAttrib1dv, 2, arg0, arg1);
       glad_glVertexAttrib1dv(arg0, arg1);
      _post_call_callback_gl("glVertexAttrib1dv", (void*)glVertexAttrib1dv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIB1DVPROC glad_debug_glVertexAttrib1dv = glad_debug_impl_glVertexAttrib1dv;
  PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f;
  void APIENTRY glad_debug_impl_glVertexAttrib1f(GLuint arg0, GLfloat arg1) {    
      _pre_call_callback_gl("glVertexAttrib1f", (void*)glVertexAttrib1f, 2, arg0, arg1);
       glad_glVertexAttrib1f(arg0, arg1);
      _post_call_callback_gl("glVertexAttrib1f", (void*)glVertexAttrib1f, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIB1FPROC glad_debug_glVertexAttrib1f = glad_debug_impl_glVertexAttrib1f;
  PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv;
  void APIENTRY glad_debug_impl_glVertexAttrib1fv(GLuint arg0, const GLfloat * arg1) {    
      _pre_call_callback_gl("glVertexAttrib1fv", (void*)glVertexAttrib1fv, 2, arg0, arg1);
       glad_glVertexAttrib1fv(arg0, arg1);
      _post_call_callback_gl("glVertexAttrib1fv", (void*)glVertexAttrib1fv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIB1FVPROC glad_debug_glVertexAttrib1fv = glad_debug_impl_glVertexAttrib1fv;
  PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s;
  void APIENTRY glad_debug_impl_glVertexAttrib1s(GLuint arg0, GLshort arg1) {    
      _pre_call_callback_gl("glVertexAttrib1s", (void*)glVertexAttrib1s, 2, arg0, arg1);
       glad_glVertexAttrib1s(arg0, arg1);
      _post_call_callback_gl("glVertexAttrib1s", (void*)glVertexAttrib1s, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIB1SPROC glad_debug_glVertexAttrib1s = glad_debug_impl_glVertexAttrib1s;
  PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv;
  void APIENTRY glad_debug_impl_glVertexAttrib1sv(GLuint arg0, const GLshort * arg1) {    
      _pre_call_callback_gl("glVertexAttrib1sv", (void*)glVertexAttrib1sv, 2, arg0, arg1);
       glad_glVertexAttrib1sv(arg0, arg1);
      _post_call_callback_gl("glVertexAttrib1sv", (void*)glVertexAttrib1sv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIB1SVPROC glad_debug_glVertexAttrib1sv = glad_debug_impl_glVertexAttrib1sv;
  PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d;
  void APIENTRY glad_debug_impl_glVertexAttrib2d(GLuint arg0, GLdouble arg1, GLdouble arg2) {    
      _pre_call_callback_gl("glVertexAttrib2d", (void*)glVertexAttrib2d, 3, arg0, arg1, arg2);
       glad_glVertexAttrib2d(arg0, arg1, arg2);
      _post_call_callback_gl("glVertexAttrib2d", (void*)glVertexAttrib2d, 3, arg0, arg1, arg2);
      
  }
  PFNGLVERTEXATTRIB2DPROC glad_debug_glVertexAttrib2d = glad_debug_impl_glVertexAttrib2d;
  PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv;
  void APIENTRY glad_debug_impl_glVertexAttrib2dv(GLuint arg0, const GLdouble * arg1) {    
      _pre_call_callback_gl("glVertexAttrib2dv", (void*)glVertexAttrib2dv, 2, arg0, arg1);
       glad_glVertexAttrib2dv(arg0, arg1);
      _post_call_callback_gl("glVertexAttrib2dv", (void*)glVertexAttrib2dv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIB2DVPROC glad_debug_glVertexAttrib2dv = glad_debug_impl_glVertexAttrib2dv;
  PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f;
  void APIENTRY glad_debug_impl_glVertexAttrib2f(GLuint arg0, GLfloat arg1, GLfloat arg2) {    
      _pre_call_callback_gl("glVertexAttrib2f", (void*)glVertexAttrib2f, 3, arg0, arg1, arg2);
       glad_glVertexAttrib2f(arg0, arg1, arg2);
      _post_call_callback_gl("glVertexAttrib2f", (void*)glVertexAttrib2f, 3, arg0, arg1, arg2);
      
  }
  PFNGLVERTEXATTRIB2FPROC glad_debug_glVertexAttrib2f = glad_debug_impl_glVertexAttrib2f;
  PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv;
  void APIENTRY glad_debug_impl_glVertexAttrib2fv(GLuint arg0, const GLfloat * arg1) {    
      _pre_call_callback_gl("glVertexAttrib2fv", (void*)glVertexAttrib2fv, 2, arg0, arg1);
       glad_glVertexAttrib2fv(arg0, arg1);
      _post_call_callback_gl("glVertexAttrib2fv", (void*)glVertexAttrib2fv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIB2FVPROC glad_debug_glVertexAttrib2fv = glad_debug_impl_glVertexAttrib2fv;
  PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s;
  void APIENTRY glad_debug_impl_glVertexAttrib2s(GLuint arg0, GLshort arg1, GLshort arg2) {    
      _pre_call_callback_gl("glVertexAttrib2s", (void*)glVertexAttrib2s, 3, arg0, arg1, arg2);
       glad_glVertexAttrib2s(arg0, arg1, arg2);
      _post_call_callback_gl("glVertexAttrib2s", (void*)glVertexAttrib2s, 3, arg0, arg1, arg2);
      
  }
  PFNGLVERTEXATTRIB2SPROC glad_debug_glVertexAttrib2s = glad_debug_impl_glVertexAttrib2s;
  PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv;
  void APIENTRY glad_debug_impl_glVertexAttrib2sv(GLuint arg0, const GLshort * arg1) {    
      _pre_call_callback_gl("glVertexAttrib2sv", (void*)glVertexAttrib2sv, 2, arg0, arg1);
       glad_glVertexAttrib2sv(arg0, arg1);
      _post_call_callback_gl("glVertexAttrib2sv", (void*)glVertexAttrib2sv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIB2SVPROC glad_debug_glVertexAttrib2sv = glad_debug_impl_glVertexAttrib2sv;
  PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d;
  void APIENTRY glad_debug_impl_glVertexAttrib3d(GLuint arg0, GLdouble arg1, GLdouble arg2, GLdouble arg3) {    
      _pre_call_callback_gl("glVertexAttrib3d", (void*)glVertexAttrib3d, 4, arg0, arg1, arg2, arg3);
       glad_glVertexAttrib3d(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glVertexAttrib3d", (void*)glVertexAttrib3d, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLVERTEXATTRIB3DPROC glad_debug_glVertexAttrib3d = glad_debug_impl_glVertexAttrib3d;
  PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv;
  void APIENTRY glad_debug_impl_glVertexAttrib3dv(GLuint arg0, const GLdouble * arg1) {    
      _pre_call_callback_gl("glVertexAttrib3dv", (void*)glVertexAttrib3dv, 2, arg0, arg1);
       glad_glVertexAttrib3dv(arg0, arg1);
      _post_call_callback_gl("glVertexAttrib3dv", (void*)glVertexAttrib3dv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIB3DVPROC glad_debug_glVertexAttrib3dv = glad_debug_impl_glVertexAttrib3dv;
  PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f;
  void APIENTRY glad_debug_impl_glVertexAttrib3f(GLuint arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3) {    
      _pre_call_callback_gl("glVertexAttrib3f", (void*)glVertexAttrib3f, 4, arg0, arg1, arg2, arg3);
       glad_glVertexAttrib3f(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glVertexAttrib3f", (void*)glVertexAttrib3f, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLVERTEXATTRIB3FPROC glad_debug_glVertexAttrib3f = glad_debug_impl_glVertexAttrib3f;
  PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv;
  void APIENTRY glad_debug_impl_glVertexAttrib3fv(GLuint arg0, const GLfloat * arg1) {    
      _pre_call_callback_gl("glVertexAttrib3fv", (void*)glVertexAttrib3fv, 2, arg0, arg1);
       glad_glVertexAttrib3fv(arg0, arg1);
      _post_call_callback_gl("glVertexAttrib3fv", (void*)glVertexAttrib3fv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIB3FVPROC glad_debug_glVertexAttrib3fv = glad_debug_impl_glVertexAttrib3fv;
  PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s;
  void APIENTRY glad_debug_impl_glVertexAttrib3s(GLuint arg0, GLshort arg1, GLshort arg2, GLshort arg3) {    
      _pre_call_callback_gl("glVertexAttrib3s", (void*)glVertexAttrib3s, 4, arg0, arg1, arg2, arg3);
       glad_glVertexAttrib3s(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glVertexAttrib3s", (void*)glVertexAttrib3s, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLVERTEXATTRIB3SPROC glad_debug_glVertexAttrib3s = glad_debug_impl_glVertexAttrib3s;
  PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv;
  void APIENTRY glad_debug_impl_glVertexAttrib3sv(GLuint arg0, const GLshort * arg1) {    
      _pre_call_callback_gl("glVertexAttrib3sv", (void*)glVertexAttrib3sv, 2, arg0, arg1);
       glad_glVertexAttrib3sv(arg0, arg1);
      _post_call_callback_gl("glVertexAttrib3sv", (void*)glVertexAttrib3sv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIB3SVPROC glad_debug_glVertexAttrib3sv = glad_debug_impl_glVertexAttrib3sv;
  PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv;
  void APIENTRY glad_debug_impl_glVertexAttrib4Nbv(GLuint arg0, const GLbyte * arg1) {    
      _pre_call_callback_gl("glVertexAttrib4Nbv", (void*)glVertexAttrib4Nbv, 2, arg0, arg1);
       glad_glVertexAttrib4Nbv(arg0, arg1);
      _post_call_callback_gl("glVertexAttrib4Nbv", (void*)glVertexAttrib4Nbv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIB4NBVPROC glad_debug_glVertexAttrib4Nbv = glad_debug_impl_glVertexAttrib4Nbv;
  PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv;
  void APIENTRY glad_debug_impl_glVertexAttrib4Niv(GLuint arg0, const GLint * arg1) {    
      _pre_call_callback_gl("glVertexAttrib4Niv", (void*)glVertexAttrib4Niv, 2, arg0, arg1);
       glad_glVertexAttrib4Niv(arg0, arg1);
      _post_call_callback_gl("glVertexAttrib4Niv", (void*)glVertexAttrib4Niv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIB4NIVPROC glad_debug_glVertexAttrib4Niv = glad_debug_impl_glVertexAttrib4Niv;
  PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv;
  void APIENTRY glad_debug_impl_glVertexAttrib4Nsv(GLuint arg0, const GLshort * arg1) {    
      _pre_call_callback_gl("glVertexAttrib4Nsv", (void*)glVertexAttrib4Nsv, 2, arg0, arg1);
       glad_glVertexAttrib4Nsv(arg0, arg1);
      _post_call_callback_gl("glVertexAttrib4Nsv", (void*)glVertexAttrib4Nsv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIB4NSVPROC glad_debug_glVertexAttrib4Nsv = glad_debug_impl_glVertexAttrib4Nsv;
  PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub;
  void APIENTRY glad_debug_impl_glVertexAttrib4Nub(GLuint arg0, GLubyte arg1, GLubyte arg2, GLubyte arg3, GLubyte arg4) {    
      _pre_call_callback_gl("glVertexAttrib4Nub", (void*)glVertexAttrib4Nub, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glVertexAttrib4Nub(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glVertexAttrib4Nub", (void*)glVertexAttrib4Nub, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLVERTEXATTRIB4NUBPROC glad_debug_glVertexAttrib4Nub = glad_debug_impl_glVertexAttrib4Nub;
  PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv;
  void APIENTRY glad_debug_impl_glVertexAttrib4Nubv(GLuint arg0, const GLubyte * arg1) {    
      _pre_call_callback_gl("glVertexAttrib4Nubv", (void*)glVertexAttrib4Nubv, 2, arg0, arg1);
       glad_glVertexAttrib4Nubv(arg0, arg1);
      _post_call_callback_gl("glVertexAttrib4Nubv", (void*)glVertexAttrib4Nubv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIB4NUBVPROC glad_debug_glVertexAttrib4Nubv = glad_debug_impl_glVertexAttrib4Nubv;
  PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv;
  void APIENTRY glad_debug_impl_glVertexAttrib4Nuiv(GLuint arg0, const GLuint * arg1) {    
      _pre_call_callback_gl("glVertexAttrib4Nuiv", (void*)glVertexAttrib4Nuiv, 2, arg0, arg1);
       glad_glVertexAttrib4Nuiv(arg0, arg1);
      _post_call_callback_gl("glVertexAttrib4Nuiv", (void*)glVertexAttrib4Nuiv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIB4NUIVPROC glad_debug_glVertexAttrib4Nuiv = glad_debug_impl_glVertexAttrib4Nuiv;
  PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv;
  void APIENTRY glad_debug_impl_glVertexAttrib4Nusv(GLuint arg0, const GLushort * arg1) {    
      _pre_call_callback_gl("glVertexAttrib4Nusv", (void*)glVertexAttrib4Nusv, 2, arg0, arg1);
       glad_glVertexAttrib4Nusv(arg0, arg1);
      _post_call_callback_gl("glVertexAttrib4Nusv", (void*)glVertexAttrib4Nusv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIB4NUSVPROC glad_debug_glVertexAttrib4Nusv = glad_debug_impl_glVertexAttrib4Nusv;
  PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv;
  void APIENTRY glad_debug_impl_glVertexAttrib4bv(GLuint arg0, const GLbyte * arg1) {    
      _pre_call_callback_gl("glVertexAttrib4bv", (void*)glVertexAttrib4bv, 2, arg0, arg1);
       glad_glVertexAttrib4bv(arg0, arg1);
      _post_call_callback_gl("glVertexAttrib4bv", (void*)glVertexAttrib4bv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIB4BVPROC glad_debug_glVertexAttrib4bv = glad_debug_impl_glVertexAttrib4bv;
  PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d;
  void APIENTRY glad_debug_impl_glVertexAttrib4d(GLuint arg0, GLdouble arg1, GLdouble arg2, GLdouble arg3, GLdouble arg4) {    
      _pre_call_callback_gl("glVertexAttrib4d", (void*)glVertexAttrib4d, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glVertexAttrib4d(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glVertexAttrib4d", (void*)glVertexAttrib4d, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLVERTEXATTRIB4DPROC glad_debug_glVertexAttrib4d = glad_debug_impl_glVertexAttrib4d;
  PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv;
  void APIENTRY glad_debug_impl_glVertexAttrib4dv(GLuint arg0, const GLdouble * arg1) {    
      _pre_call_callback_gl("glVertexAttrib4dv", (void*)glVertexAttrib4dv, 2, arg0, arg1);
       glad_glVertexAttrib4dv(arg0, arg1);
      _post_call_callback_gl("glVertexAttrib4dv", (void*)glVertexAttrib4dv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIB4DVPROC glad_debug_glVertexAttrib4dv = glad_debug_impl_glVertexAttrib4dv;
  PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f;
  void APIENTRY glad_debug_impl_glVertexAttrib4f(GLuint arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3, GLfloat arg4) {    
      _pre_call_callback_gl("glVertexAttrib4f", (void*)glVertexAttrib4f, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glVertexAttrib4f(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glVertexAttrib4f", (void*)glVertexAttrib4f, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLVERTEXATTRIB4FPROC glad_debug_glVertexAttrib4f = glad_debug_impl_glVertexAttrib4f;
  PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv;
  void APIENTRY glad_debug_impl_glVertexAttrib4fv(GLuint arg0, const GLfloat * arg1) {    
      _pre_call_callback_gl("glVertexAttrib4fv", (void*)glVertexAttrib4fv, 2, arg0, arg1);
       glad_glVertexAttrib4fv(arg0, arg1);
      _post_call_callback_gl("glVertexAttrib4fv", (void*)glVertexAttrib4fv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIB4FVPROC glad_debug_glVertexAttrib4fv = glad_debug_impl_glVertexAttrib4fv;
  PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv;
  void APIENTRY glad_debug_impl_glVertexAttrib4iv(GLuint arg0, const GLint * arg1) {    
      _pre_call_callback_gl("glVertexAttrib4iv", (void*)glVertexAttrib4iv, 2, arg0, arg1);
       glad_glVertexAttrib4iv(arg0, arg1);
      _post_call_callback_gl("glVertexAttrib4iv", (void*)glVertexAttrib4iv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIB4IVPROC glad_debug_glVertexAttrib4iv = glad_debug_impl_glVertexAttrib4iv;
  PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s;
  void APIENTRY glad_debug_impl_glVertexAttrib4s(GLuint arg0, GLshort arg1, GLshort arg2, GLshort arg3, GLshort arg4) {    
      _pre_call_callback_gl("glVertexAttrib4s", (void*)glVertexAttrib4s, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glVertexAttrib4s(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glVertexAttrib4s", (void*)glVertexAttrib4s, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLVERTEXATTRIB4SPROC glad_debug_glVertexAttrib4s = glad_debug_impl_glVertexAttrib4s;
  PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv;
  void APIENTRY glad_debug_impl_glVertexAttrib4sv(GLuint arg0, const GLshort * arg1) {    
      _pre_call_callback_gl("glVertexAttrib4sv", (void*)glVertexAttrib4sv, 2, arg0, arg1);
       glad_glVertexAttrib4sv(arg0, arg1);
      _post_call_callback_gl("glVertexAttrib4sv", (void*)glVertexAttrib4sv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIB4SVPROC glad_debug_glVertexAttrib4sv = glad_debug_impl_glVertexAttrib4sv;
  PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv;
  void APIENTRY glad_debug_impl_glVertexAttrib4ubv(GLuint arg0, const GLubyte * arg1) {    
      _pre_call_callback_gl("glVertexAttrib4ubv", (void*)glVertexAttrib4ubv, 2, arg0, arg1);
       glad_glVertexAttrib4ubv(arg0, arg1);
      _post_call_callback_gl("glVertexAttrib4ubv", (void*)glVertexAttrib4ubv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIB4UBVPROC glad_debug_glVertexAttrib4ubv = glad_debug_impl_glVertexAttrib4ubv;
  PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv;
  void APIENTRY glad_debug_impl_glVertexAttrib4uiv(GLuint arg0, const GLuint * arg1) {    
      _pre_call_callback_gl("glVertexAttrib4uiv", (void*)glVertexAttrib4uiv, 2, arg0, arg1);
       glad_glVertexAttrib4uiv(arg0, arg1);
      _post_call_callback_gl("glVertexAttrib4uiv", (void*)glVertexAttrib4uiv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIB4UIVPROC glad_debug_glVertexAttrib4uiv = glad_debug_impl_glVertexAttrib4uiv;
  PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv;
  void APIENTRY glad_debug_impl_glVertexAttrib4usv(GLuint arg0, const GLushort * arg1) {    
      _pre_call_callback_gl("glVertexAttrib4usv", (void*)glVertexAttrib4usv, 2, arg0, arg1);
       glad_glVertexAttrib4usv(arg0, arg1);
      _post_call_callback_gl("glVertexAttrib4usv", (void*)glVertexAttrib4usv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIB4USVPROC glad_debug_glVertexAttrib4usv = glad_debug_impl_glVertexAttrib4usv;
  PFNGLVERTEXATTRIBBINDINGPROC glad_glVertexAttribBinding;
  void APIENTRY glad_debug_impl_glVertexAttribBinding(GLuint arg0, GLuint arg1) {    
      _pre_call_callback_gl("glVertexAttribBinding", (void*)glVertexAttribBinding, 2, arg0, arg1);
       glad_glVertexAttribBinding(arg0, arg1);
      _post_call_callback_gl("glVertexAttribBinding", (void*)glVertexAttribBinding, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIBBINDINGPROC glad_debug_glVertexAttribBinding = glad_debug_impl_glVertexAttribBinding;
  PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor;
  void APIENTRY glad_debug_impl_glVertexAttribDivisor(GLuint arg0, GLuint arg1) {    
      _pre_call_callback_gl("glVertexAttribDivisor", (void*)glVertexAttribDivisor, 2, arg0, arg1);
       glad_glVertexAttribDivisor(arg0, arg1);
      _post_call_callback_gl("glVertexAttribDivisor", (void*)glVertexAttribDivisor, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIBDIVISORPROC glad_debug_glVertexAttribDivisor = glad_debug_impl_glVertexAttribDivisor;
  PFNGLVERTEXATTRIBFORMATPROC glad_glVertexAttribFormat;
  void APIENTRY glad_debug_impl_glVertexAttribFormat(GLuint arg0, GLint arg1, GLenum arg2, GLboolean arg3, GLuint arg4) {    
      _pre_call_callback_gl("glVertexAttribFormat", (void*)glVertexAttribFormat, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glVertexAttribFormat(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glVertexAttribFormat", (void*)glVertexAttribFormat, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLVERTEXATTRIBFORMATPROC glad_debug_glVertexAttribFormat = glad_debug_impl_glVertexAttribFormat;
  PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i;
  void APIENTRY glad_debug_impl_glVertexAttribI1i(GLuint arg0, GLint arg1) {    
      _pre_call_callback_gl("glVertexAttribI1i", (void*)glVertexAttribI1i, 2, arg0, arg1);
       glad_glVertexAttribI1i(arg0, arg1);
      _post_call_callback_gl("glVertexAttribI1i", (void*)glVertexAttribI1i, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIBI1IPROC glad_debug_glVertexAttribI1i = glad_debug_impl_glVertexAttribI1i;
  PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv;
  void APIENTRY glad_debug_impl_glVertexAttribI1iv(GLuint arg0, const GLint * arg1) {    
      _pre_call_callback_gl("glVertexAttribI1iv", (void*)glVertexAttribI1iv, 2, arg0, arg1);
       glad_glVertexAttribI1iv(arg0, arg1);
      _post_call_callback_gl("glVertexAttribI1iv", (void*)glVertexAttribI1iv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIBI1IVPROC glad_debug_glVertexAttribI1iv = glad_debug_impl_glVertexAttribI1iv;
  PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui;
  void APIENTRY glad_debug_impl_glVertexAttribI1ui(GLuint arg0, GLuint arg1) {    
      _pre_call_callback_gl("glVertexAttribI1ui", (void*)glVertexAttribI1ui, 2, arg0, arg1);
       glad_glVertexAttribI1ui(arg0, arg1);
      _post_call_callback_gl("glVertexAttribI1ui", (void*)glVertexAttribI1ui, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIBI1UIPROC glad_debug_glVertexAttribI1ui = glad_debug_impl_glVertexAttribI1ui;
  PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv;
  void APIENTRY glad_debug_impl_glVertexAttribI1uiv(GLuint arg0, const GLuint * arg1) {    
      _pre_call_callback_gl("glVertexAttribI1uiv", (void*)glVertexAttribI1uiv, 2, arg0, arg1);
       glad_glVertexAttribI1uiv(arg0, arg1);
      _post_call_callback_gl("glVertexAttribI1uiv", (void*)glVertexAttribI1uiv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIBI1UIVPROC glad_debug_glVertexAttribI1uiv = glad_debug_impl_glVertexAttribI1uiv;
  PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i;
  void APIENTRY glad_debug_impl_glVertexAttribI2i(GLuint arg0, GLint arg1, GLint arg2) {    
      _pre_call_callback_gl("glVertexAttribI2i", (void*)glVertexAttribI2i, 3, arg0, arg1, arg2);
       glad_glVertexAttribI2i(arg0, arg1, arg2);
      _post_call_callback_gl("glVertexAttribI2i", (void*)glVertexAttribI2i, 3, arg0, arg1, arg2);
      
  }
  PFNGLVERTEXATTRIBI2IPROC glad_debug_glVertexAttribI2i = glad_debug_impl_glVertexAttribI2i;
  PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv;
  void APIENTRY glad_debug_impl_glVertexAttribI2iv(GLuint arg0, const GLint * arg1) {    
      _pre_call_callback_gl("glVertexAttribI2iv", (void*)glVertexAttribI2iv, 2, arg0, arg1);
       glad_glVertexAttribI2iv(arg0, arg1);
      _post_call_callback_gl("glVertexAttribI2iv", (void*)glVertexAttribI2iv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIBI2IVPROC glad_debug_glVertexAttribI2iv = glad_debug_impl_glVertexAttribI2iv;
  PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui;
  void APIENTRY glad_debug_impl_glVertexAttribI2ui(GLuint arg0, GLuint arg1, GLuint arg2) {    
      _pre_call_callback_gl("glVertexAttribI2ui", (void*)glVertexAttribI2ui, 3, arg0, arg1, arg2);
       glad_glVertexAttribI2ui(arg0, arg1, arg2);
      _post_call_callback_gl("glVertexAttribI2ui", (void*)glVertexAttribI2ui, 3, arg0, arg1, arg2);
      
  }
  PFNGLVERTEXATTRIBI2UIPROC glad_debug_glVertexAttribI2ui = glad_debug_impl_glVertexAttribI2ui;
  PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv;
  void APIENTRY glad_debug_impl_glVertexAttribI2uiv(GLuint arg0, const GLuint * arg1) {    
      _pre_call_callback_gl("glVertexAttribI2uiv", (void*)glVertexAttribI2uiv, 2, arg0, arg1);
       glad_glVertexAttribI2uiv(arg0, arg1);
      _post_call_callback_gl("glVertexAttribI2uiv", (void*)glVertexAttribI2uiv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIBI2UIVPROC glad_debug_glVertexAttribI2uiv = glad_debug_impl_glVertexAttribI2uiv;
  PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i;
  void APIENTRY glad_debug_impl_glVertexAttribI3i(GLuint arg0, GLint arg1, GLint arg2, GLint arg3) {    
      _pre_call_callback_gl("glVertexAttribI3i", (void*)glVertexAttribI3i, 4, arg0, arg1, arg2, arg3);
       glad_glVertexAttribI3i(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glVertexAttribI3i", (void*)glVertexAttribI3i, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLVERTEXATTRIBI3IPROC glad_debug_glVertexAttribI3i = glad_debug_impl_glVertexAttribI3i;
  PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv;
  void APIENTRY glad_debug_impl_glVertexAttribI3iv(GLuint arg0, const GLint * arg1) {    
      _pre_call_callback_gl("glVertexAttribI3iv", (void*)glVertexAttribI3iv, 2, arg0, arg1);
       glad_glVertexAttribI3iv(arg0, arg1);
      _post_call_callback_gl("glVertexAttribI3iv", (void*)glVertexAttribI3iv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIBI3IVPROC glad_debug_glVertexAttribI3iv = glad_debug_impl_glVertexAttribI3iv;
  PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui;
  void APIENTRY glad_debug_impl_glVertexAttribI3ui(GLuint arg0, GLuint arg1, GLuint arg2, GLuint arg3) {    
      _pre_call_callback_gl("glVertexAttribI3ui", (void*)glVertexAttribI3ui, 4, arg0, arg1, arg2, arg3);
       glad_glVertexAttribI3ui(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glVertexAttribI3ui", (void*)glVertexAttribI3ui, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLVERTEXATTRIBI3UIPROC glad_debug_glVertexAttribI3ui = glad_debug_impl_glVertexAttribI3ui;
  PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv;
  void APIENTRY glad_debug_impl_glVertexAttribI3uiv(GLuint arg0, const GLuint * arg1) {    
      _pre_call_callback_gl("glVertexAttribI3uiv", (void*)glVertexAttribI3uiv, 2, arg0, arg1);
       glad_glVertexAttribI3uiv(arg0, arg1);
      _post_call_callback_gl("glVertexAttribI3uiv", (void*)glVertexAttribI3uiv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIBI3UIVPROC glad_debug_glVertexAttribI3uiv = glad_debug_impl_glVertexAttribI3uiv;
  PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv;
  void APIENTRY glad_debug_impl_glVertexAttribI4bv(GLuint arg0, const GLbyte * arg1) {    
      _pre_call_callback_gl("glVertexAttribI4bv", (void*)glVertexAttribI4bv, 2, arg0, arg1);
       glad_glVertexAttribI4bv(arg0, arg1);
      _post_call_callback_gl("glVertexAttribI4bv", (void*)glVertexAttribI4bv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIBI4BVPROC glad_debug_glVertexAttribI4bv = glad_debug_impl_glVertexAttribI4bv;
  PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i;
  void APIENTRY glad_debug_impl_glVertexAttribI4i(GLuint arg0, GLint arg1, GLint arg2, GLint arg3, GLint arg4) {    
      _pre_call_callback_gl("glVertexAttribI4i", (void*)glVertexAttribI4i, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glVertexAttribI4i(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glVertexAttribI4i", (void*)glVertexAttribI4i, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLVERTEXATTRIBI4IPROC glad_debug_glVertexAttribI4i = glad_debug_impl_glVertexAttribI4i;
  PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv;
  void APIENTRY glad_debug_impl_glVertexAttribI4iv(GLuint arg0, const GLint * arg1) {    
      _pre_call_callback_gl("glVertexAttribI4iv", (void*)glVertexAttribI4iv, 2, arg0, arg1);
       glad_glVertexAttribI4iv(arg0, arg1);
      _post_call_callback_gl("glVertexAttribI4iv", (void*)glVertexAttribI4iv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIBI4IVPROC glad_debug_glVertexAttribI4iv = glad_debug_impl_glVertexAttribI4iv;
  PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv;
  void APIENTRY glad_debug_impl_glVertexAttribI4sv(GLuint arg0, const GLshort * arg1) {    
      _pre_call_callback_gl("glVertexAttribI4sv", (void*)glVertexAttribI4sv, 2, arg0, arg1);
       glad_glVertexAttribI4sv(arg0, arg1);
      _post_call_callback_gl("glVertexAttribI4sv", (void*)glVertexAttribI4sv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIBI4SVPROC glad_debug_glVertexAttribI4sv = glad_debug_impl_glVertexAttribI4sv;
  PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv;
  void APIENTRY glad_debug_impl_glVertexAttribI4ubv(GLuint arg0, const GLubyte * arg1) {    
      _pre_call_callback_gl("glVertexAttribI4ubv", (void*)glVertexAttribI4ubv, 2, arg0, arg1);
       glad_glVertexAttribI4ubv(arg0, arg1);
      _post_call_callback_gl("glVertexAttribI4ubv", (void*)glVertexAttribI4ubv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIBI4UBVPROC glad_debug_glVertexAttribI4ubv = glad_debug_impl_glVertexAttribI4ubv;
  PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui;
  void APIENTRY glad_debug_impl_glVertexAttribI4ui(GLuint arg0, GLuint arg1, GLuint arg2, GLuint arg3, GLuint arg4) {    
      _pre_call_callback_gl("glVertexAttribI4ui", (void*)glVertexAttribI4ui, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glVertexAttribI4ui(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glVertexAttribI4ui", (void*)glVertexAttribI4ui, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLVERTEXATTRIBI4UIPROC glad_debug_glVertexAttribI4ui = glad_debug_impl_glVertexAttribI4ui;
  PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv;
  void APIENTRY glad_debug_impl_glVertexAttribI4uiv(GLuint arg0, const GLuint * arg1) {    
      _pre_call_callback_gl("glVertexAttribI4uiv", (void*)glVertexAttribI4uiv, 2, arg0, arg1);
       glad_glVertexAttribI4uiv(arg0, arg1);
      _post_call_callback_gl("glVertexAttribI4uiv", (void*)glVertexAttribI4uiv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIBI4UIVPROC glad_debug_glVertexAttribI4uiv = glad_debug_impl_glVertexAttribI4uiv;
  PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv;
  void APIENTRY glad_debug_impl_glVertexAttribI4usv(GLuint arg0, const GLushort * arg1) {    
      _pre_call_callback_gl("glVertexAttribI4usv", (void*)glVertexAttribI4usv, 2, arg0, arg1);
       glad_glVertexAttribI4usv(arg0, arg1);
      _post_call_callback_gl("glVertexAttribI4usv", (void*)glVertexAttribI4usv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIBI4USVPROC glad_debug_glVertexAttribI4usv = glad_debug_impl_glVertexAttribI4usv;
  PFNGLVERTEXATTRIBIFORMATPROC glad_glVertexAttribIFormat;
  void APIENTRY glad_debug_impl_glVertexAttribIFormat(GLuint arg0, GLint arg1, GLenum arg2, GLuint arg3) {    
      _pre_call_callback_gl("glVertexAttribIFormat", (void*)glVertexAttribIFormat, 4, arg0, arg1, arg2, arg3);
       glad_glVertexAttribIFormat(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glVertexAttribIFormat", (void*)glVertexAttribIFormat, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLVERTEXATTRIBIFORMATPROC glad_debug_glVertexAttribIFormat = glad_debug_impl_glVertexAttribIFormat;
  PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer;
  void APIENTRY glad_debug_impl_glVertexAttribIPointer(GLuint arg0, GLint arg1, GLenum arg2, GLsizei arg3, const void * arg4) {    
      _pre_call_callback_gl("glVertexAttribIPointer", (void*)glVertexAttribIPointer, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glVertexAttribIPointer(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glVertexAttribIPointer", (void*)glVertexAttribIPointer, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLVERTEXATTRIBIPOINTERPROC glad_debug_glVertexAttribIPointer = glad_debug_impl_glVertexAttribIPointer;
  PFNGLVERTEXATTRIBL1DPROC glad_glVertexAttribL1d;
  void APIENTRY glad_debug_impl_glVertexAttribL1d(GLuint arg0, GLdouble arg1) {    
      _pre_call_callback_gl("glVertexAttribL1d", (void*)glVertexAttribL1d, 2, arg0, arg1);
       glad_glVertexAttribL1d(arg0, arg1);
      _post_call_callback_gl("glVertexAttribL1d", (void*)glVertexAttribL1d, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIBL1DPROC glad_debug_glVertexAttribL1d = glad_debug_impl_glVertexAttribL1d;
  PFNGLVERTEXATTRIBL1DVPROC glad_glVertexAttribL1dv;
  void APIENTRY glad_debug_impl_glVertexAttribL1dv(GLuint arg0, const GLdouble * arg1) {    
      _pre_call_callback_gl("glVertexAttribL1dv", (void*)glVertexAttribL1dv, 2, arg0, arg1);
       glad_glVertexAttribL1dv(arg0, arg1);
      _post_call_callback_gl("glVertexAttribL1dv", (void*)glVertexAttribL1dv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIBL1DVPROC glad_debug_glVertexAttribL1dv = glad_debug_impl_glVertexAttribL1dv;
  PFNGLVERTEXATTRIBL2DPROC glad_glVertexAttribL2d;
  void APIENTRY glad_debug_impl_glVertexAttribL2d(GLuint arg0, GLdouble arg1, GLdouble arg2) {    
      _pre_call_callback_gl("glVertexAttribL2d", (void*)glVertexAttribL2d, 3, arg0, arg1, arg2);
       glad_glVertexAttribL2d(arg0, arg1, arg2);
      _post_call_callback_gl("glVertexAttribL2d", (void*)glVertexAttribL2d, 3, arg0, arg1, arg2);
      
  }
  PFNGLVERTEXATTRIBL2DPROC glad_debug_glVertexAttribL2d = glad_debug_impl_glVertexAttribL2d;
  PFNGLVERTEXATTRIBL2DVPROC glad_glVertexAttribL2dv;
  void APIENTRY glad_debug_impl_glVertexAttribL2dv(GLuint arg0, const GLdouble * arg1) {    
      _pre_call_callback_gl("glVertexAttribL2dv", (void*)glVertexAttribL2dv, 2, arg0, arg1);
       glad_glVertexAttribL2dv(arg0, arg1);
      _post_call_callback_gl("glVertexAttribL2dv", (void*)glVertexAttribL2dv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIBL2DVPROC glad_debug_glVertexAttribL2dv = glad_debug_impl_glVertexAttribL2dv;
  PFNGLVERTEXATTRIBL3DPROC glad_glVertexAttribL3d;
  void APIENTRY glad_debug_impl_glVertexAttribL3d(GLuint arg0, GLdouble arg1, GLdouble arg2, GLdouble arg3) {    
      _pre_call_callback_gl("glVertexAttribL3d", (void*)glVertexAttribL3d, 4, arg0, arg1, arg2, arg3);
       glad_glVertexAttribL3d(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glVertexAttribL3d", (void*)glVertexAttribL3d, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLVERTEXATTRIBL3DPROC glad_debug_glVertexAttribL3d = glad_debug_impl_glVertexAttribL3d;
  PFNGLVERTEXATTRIBL3DVPROC glad_glVertexAttribL3dv;
  void APIENTRY glad_debug_impl_glVertexAttribL3dv(GLuint arg0, const GLdouble * arg1) {    
      _pre_call_callback_gl("glVertexAttribL3dv", (void*)glVertexAttribL3dv, 2, arg0, arg1);
       glad_glVertexAttribL3dv(arg0, arg1);
      _post_call_callback_gl("glVertexAttribL3dv", (void*)glVertexAttribL3dv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIBL3DVPROC glad_debug_glVertexAttribL3dv = glad_debug_impl_glVertexAttribL3dv;
  PFNGLVERTEXATTRIBL4DPROC glad_glVertexAttribL4d;
  void APIENTRY glad_debug_impl_glVertexAttribL4d(GLuint arg0, GLdouble arg1, GLdouble arg2, GLdouble arg3, GLdouble arg4) {    
      _pre_call_callback_gl("glVertexAttribL4d", (void*)glVertexAttribL4d, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glVertexAttribL4d(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glVertexAttribL4d", (void*)glVertexAttribL4d, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLVERTEXATTRIBL4DPROC glad_debug_glVertexAttribL4d = glad_debug_impl_glVertexAttribL4d;
  PFNGLVERTEXATTRIBL4DVPROC glad_glVertexAttribL4dv;
  void APIENTRY glad_debug_impl_glVertexAttribL4dv(GLuint arg0, const GLdouble * arg1) {    
      _pre_call_callback_gl("glVertexAttribL4dv", (void*)glVertexAttribL4dv, 2, arg0, arg1);
       glad_glVertexAttribL4dv(arg0, arg1);
      _post_call_callback_gl("glVertexAttribL4dv", (void*)glVertexAttribL4dv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXATTRIBL4DVPROC glad_debug_glVertexAttribL4dv = glad_debug_impl_glVertexAttribL4dv;
  PFNGLVERTEXATTRIBLFORMATPROC glad_glVertexAttribLFormat;
  void APIENTRY glad_debug_impl_glVertexAttribLFormat(GLuint arg0, GLint arg1, GLenum arg2, GLuint arg3) {    
      _pre_call_callback_gl("glVertexAttribLFormat", (void*)glVertexAttribLFormat, 4, arg0, arg1, arg2, arg3);
       glad_glVertexAttribLFormat(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glVertexAttribLFormat", (void*)glVertexAttribLFormat, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLVERTEXATTRIBLFORMATPROC glad_debug_glVertexAttribLFormat = glad_debug_impl_glVertexAttribLFormat;
  PFNGLVERTEXATTRIBLPOINTERPROC glad_glVertexAttribLPointer;
  void APIENTRY glad_debug_impl_glVertexAttribLPointer(GLuint arg0, GLint arg1, GLenum arg2, GLsizei arg3, const void * arg4) {    
      _pre_call_callback_gl("glVertexAttribLPointer", (void*)glVertexAttribLPointer, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glVertexAttribLPointer(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glVertexAttribLPointer", (void*)glVertexAttribLPointer, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLVERTEXATTRIBLPOINTERPROC glad_debug_glVertexAttribLPointer = glad_debug_impl_glVertexAttribLPointer;
  PFNGLVERTEXATTRIBP1UIPROC glad_glVertexAttribP1ui;
  void APIENTRY glad_debug_impl_glVertexAttribP1ui(GLuint arg0, GLenum arg1, GLboolean arg2, GLuint arg3) {    
      _pre_call_callback_gl("glVertexAttribP1ui", (void*)glVertexAttribP1ui, 4, arg0, arg1, arg2, arg3);
       glad_glVertexAttribP1ui(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glVertexAttribP1ui", (void*)glVertexAttribP1ui, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLVERTEXATTRIBP1UIPROC glad_debug_glVertexAttribP1ui = glad_debug_impl_glVertexAttribP1ui;
  PFNGLVERTEXATTRIBP1UIVPROC glad_glVertexAttribP1uiv;
  void APIENTRY glad_debug_impl_glVertexAttribP1uiv(GLuint arg0, GLenum arg1, GLboolean arg2, const GLuint * arg3) {    
      _pre_call_callback_gl("glVertexAttribP1uiv", (void*)glVertexAttribP1uiv, 4, arg0, arg1, arg2, arg3);
       glad_glVertexAttribP1uiv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glVertexAttribP1uiv", (void*)glVertexAttribP1uiv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLVERTEXATTRIBP1UIVPROC glad_debug_glVertexAttribP1uiv = glad_debug_impl_glVertexAttribP1uiv;
  PFNGLVERTEXATTRIBP2UIPROC glad_glVertexAttribP2ui;
  void APIENTRY glad_debug_impl_glVertexAttribP2ui(GLuint arg0, GLenum arg1, GLboolean arg2, GLuint arg3) {    
      _pre_call_callback_gl("glVertexAttribP2ui", (void*)glVertexAttribP2ui, 4, arg0, arg1, arg2, arg3);
       glad_glVertexAttribP2ui(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glVertexAttribP2ui", (void*)glVertexAttribP2ui, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLVERTEXATTRIBP2UIPROC glad_debug_glVertexAttribP2ui = glad_debug_impl_glVertexAttribP2ui;
  PFNGLVERTEXATTRIBP2UIVPROC glad_glVertexAttribP2uiv;
  void APIENTRY glad_debug_impl_glVertexAttribP2uiv(GLuint arg0, GLenum arg1, GLboolean arg2, const GLuint * arg3) {    
      _pre_call_callback_gl("glVertexAttribP2uiv", (void*)glVertexAttribP2uiv, 4, arg0, arg1, arg2, arg3);
       glad_glVertexAttribP2uiv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glVertexAttribP2uiv", (void*)glVertexAttribP2uiv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLVERTEXATTRIBP2UIVPROC glad_debug_glVertexAttribP2uiv = glad_debug_impl_glVertexAttribP2uiv;
  PFNGLVERTEXATTRIBP3UIPROC glad_glVertexAttribP3ui;
  void APIENTRY glad_debug_impl_glVertexAttribP3ui(GLuint arg0, GLenum arg1, GLboolean arg2, GLuint arg3) {    
      _pre_call_callback_gl("glVertexAttribP3ui", (void*)glVertexAttribP3ui, 4, arg0, arg1, arg2, arg3);
       glad_glVertexAttribP3ui(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glVertexAttribP3ui", (void*)glVertexAttribP3ui, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLVERTEXATTRIBP3UIPROC glad_debug_glVertexAttribP3ui = glad_debug_impl_glVertexAttribP3ui;
  PFNGLVERTEXATTRIBP3UIVPROC glad_glVertexAttribP3uiv;
  void APIENTRY glad_debug_impl_glVertexAttribP3uiv(GLuint arg0, GLenum arg1, GLboolean arg2, const GLuint * arg3) {    
      _pre_call_callback_gl("glVertexAttribP3uiv", (void*)glVertexAttribP3uiv, 4, arg0, arg1, arg2, arg3);
       glad_glVertexAttribP3uiv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glVertexAttribP3uiv", (void*)glVertexAttribP3uiv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLVERTEXATTRIBP3UIVPROC glad_debug_glVertexAttribP3uiv = glad_debug_impl_glVertexAttribP3uiv;
  PFNGLVERTEXATTRIBP4UIPROC glad_glVertexAttribP4ui;
  void APIENTRY glad_debug_impl_glVertexAttribP4ui(GLuint arg0, GLenum arg1, GLboolean arg2, GLuint arg3) {    
      _pre_call_callback_gl("glVertexAttribP4ui", (void*)glVertexAttribP4ui, 4, arg0, arg1, arg2, arg3);
       glad_glVertexAttribP4ui(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glVertexAttribP4ui", (void*)glVertexAttribP4ui, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLVERTEXATTRIBP4UIPROC glad_debug_glVertexAttribP4ui = glad_debug_impl_glVertexAttribP4ui;
  PFNGLVERTEXATTRIBP4UIVPROC glad_glVertexAttribP4uiv;
  void APIENTRY glad_debug_impl_glVertexAttribP4uiv(GLuint arg0, GLenum arg1, GLboolean arg2, const GLuint * arg3) {    
      _pre_call_callback_gl("glVertexAttribP4uiv", (void*)glVertexAttribP4uiv, 4, arg0, arg1, arg2, arg3);
       glad_glVertexAttribP4uiv(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glVertexAttribP4uiv", (void*)glVertexAttribP4uiv, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLVERTEXATTRIBP4UIVPROC glad_debug_glVertexAttribP4uiv = glad_debug_impl_glVertexAttribP4uiv;
  PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer;
  void APIENTRY glad_debug_impl_glVertexAttribPointer(GLuint arg0, GLint arg1, GLenum arg2, GLboolean arg3, GLsizei arg4, const void * arg5) {    
      _pre_call_callback_gl("glVertexAttribPointer", (void*)glVertexAttribPointer, 6, arg0, arg1, arg2, arg3, arg4, arg5);
       glad_glVertexAttribPointer(arg0, arg1, arg2, arg3, arg4, arg5);
      _post_call_callback_gl("glVertexAttribPointer", (void*)glVertexAttribPointer, 6, arg0, arg1, arg2, arg3, arg4, arg5);
      
  }
  PFNGLVERTEXATTRIBPOINTERPROC glad_debug_glVertexAttribPointer = glad_debug_impl_glVertexAttribPointer;
  PFNGLVERTEXBINDINGDIVISORPROC glad_glVertexBindingDivisor;
  void APIENTRY glad_debug_impl_glVertexBindingDivisor(GLuint arg0, GLuint arg1) {    
      _pre_call_callback_gl("glVertexBindingDivisor", (void*)glVertexBindingDivisor, 2, arg0, arg1);
       glad_glVertexBindingDivisor(arg0, arg1);
      _post_call_callback_gl("glVertexBindingDivisor", (void*)glVertexBindingDivisor, 2, arg0, arg1);
      
  }
  PFNGLVERTEXBINDINGDIVISORPROC glad_debug_glVertexBindingDivisor = glad_debug_impl_glVertexBindingDivisor;
  PFNGLVERTEXP2UIPROC glad_glVertexP2ui;
  void APIENTRY glad_debug_impl_glVertexP2ui(GLenum arg0, GLuint arg1) {    
      _pre_call_callback_gl("glVertexP2ui", (void*)glVertexP2ui, 2, arg0, arg1);
       glad_glVertexP2ui(arg0, arg1);
      _post_call_callback_gl("glVertexP2ui", (void*)glVertexP2ui, 2, arg0, arg1);
      
  }
  PFNGLVERTEXP2UIPROC glad_debug_glVertexP2ui = glad_debug_impl_glVertexP2ui;
  PFNGLVERTEXP2UIVPROC glad_glVertexP2uiv;
  void APIENTRY glad_debug_impl_glVertexP2uiv(GLenum arg0, const GLuint * arg1) {    
      _pre_call_callback_gl("glVertexP2uiv", (void*)glVertexP2uiv, 2, arg0, arg1);
       glad_glVertexP2uiv(arg0, arg1);
      _post_call_callback_gl("glVertexP2uiv", (void*)glVertexP2uiv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXP2UIVPROC glad_debug_glVertexP2uiv = glad_debug_impl_glVertexP2uiv;
  PFNGLVERTEXP3UIPROC glad_glVertexP3ui;
  void APIENTRY glad_debug_impl_glVertexP3ui(GLenum arg0, GLuint arg1) {    
      _pre_call_callback_gl("glVertexP3ui", (void*)glVertexP3ui, 2, arg0, arg1);
       glad_glVertexP3ui(arg0, arg1);
      _post_call_callback_gl("glVertexP3ui", (void*)glVertexP3ui, 2, arg0, arg1);
      
  }
  PFNGLVERTEXP3UIPROC glad_debug_glVertexP3ui = glad_debug_impl_glVertexP3ui;
  PFNGLVERTEXP3UIVPROC glad_glVertexP3uiv;
  void APIENTRY glad_debug_impl_glVertexP3uiv(GLenum arg0, const GLuint * arg1) {    
      _pre_call_callback_gl("glVertexP3uiv", (void*)glVertexP3uiv, 2, arg0, arg1);
       glad_glVertexP3uiv(arg0, arg1);
      _post_call_callback_gl("glVertexP3uiv", (void*)glVertexP3uiv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXP3UIVPROC glad_debug_glVertexP3uiv = glad_debug_impl_glVertexP3uiv;
  PFNGLVERTEXP4UIPROC glad_glVertexP4ui;
  void APIENTRY glad_debug_impl_glVertexP4ui(GLenum arg0, GLuint arg1) {    
      _pre_call_callback_gl("glVertexP4ui", (void*)glVertexP4ui, 2, arg0, arg1);
       glad_glVertexP4ui(arg0, arg1);
      _post_call_callback_gl("glVertexP4ui", (void*)glVertexP4ui, 2, arg0, arg1);
      
  }
  PFNGLVERTEXP4UIPROC glad_debug_glVertexP4ui = glad_debug_impl_glVertexP4ui;
  PFNGLVERTEXP4UIVPROC glad_glVertexP4uiv;
  void APIENTRY glad_debug_impl_glVertexP4uiv(GLenum arg0, const GLuint * arg1) {    
      _pre_call_callback_gl("glVertexP4uiv", (void*)glVertexP4uiv, 2, arg0, arg1);
       glad_glVertexP4uiv(arg0, arg1);
      _post_call_callback_gl("glVertexP4uiv", (void*)glVertexP4uiv, 2, arg0, arg1);
      
  }
  PFNGLVERTEXP4UIVPROC glad_debug_glVertexP4uiv = glad_debug_impl_glVertexP4uiv;
  PFNGLVERTEXPOINTERPROC glad_glVertexPointer;
  void APIENTRY glad_debug_impl_glVertexPointer(GLint arg0, GLenum arg1, GLsizei arg2, const void * arg3) {    
      _pre_call_callback_gl("glVertexPointer", (void*)glVertexPointer, 4, arg0, arg1, arg2, arg3);
       glad_glVertexPointer(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glVertexPointer", (void*)glVertexPointer, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLVERTEXPOINTERPROC glad_debug_glVertexPointer = glad_debug_impl_glVertexPointer;
  PFNGLVIEWPORTPROC glad_glViewport;
  void APIENTRY glad_debug_impl_glViewport(GLint arg0, GLint arg1, GLsizei arg2, GLsizei arg3) {    
      _pre_call_callback_gl("glViewport", (void*)glViewport, 4, arg0, arg1, arg2, arg3);
       glad_glViewport(arg0, arg1, arg2, arg3);
      _post_call_callback_gl("glViewport", (void*)glViewport, 4, arg0, arg1, arg2, arg3);
      
  }
  PFNGLVIEWPORTPROC glad_debug_glViewport = glad_debug_impl_glViewport;
  PFNGLVIEWPORTARRAYVPROC glad_glViewportArrayv;
  void APIENTRY glad_debug_impl_glViewportArrayv(GLuint arg0, GLsizei arg1, const GLfloat * arg2) {    
      _pre_call_callback_gl("glViewportArrayv", (void*)glViewportArrayv, 3, arg0, arg1, arg2);
       glad_glViewportArrayv(arg0, arg1, arg2);
      _post_call_callback_gl("glViewportArrayv", (void*)glViewportArrayv, 3, arg0, arg1, arg2);
      
  }
  PFNGLVIEWPORTARRAYVPROC glad_debug_glViewportArrayv = glad_debug_impl_glViewportArrayv;
  PFNGLVIEWPORTINDEXEDFPROC glad_glViewportIndexedf;
  void APIENTRY glad_debug_impl_glViewportIndexedf(GLuint arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3, GLfloat arg4) {    
      _pre_call_callback_gl("glViewportIndexedf", (void*)glViewportIndexedf, 5, arg0, arg1, arg2, arg3, arg4);
       glad_glViewportIndexedf(arg0, arg1, arg2, arg3, arg4);
      _post_call_callback_gl("glViewportIndexedf", (void*)glViewportIndexedf, 5, arg0, arg1, arg2, arg3, arg4);
      
  }
  PFNGLVIEWPORTINDEXEDFPROC glad_debug_glViewportIndexedf = glad_debug_impl_glViewportIndexedf;
  PFNGLVIEWPORTINDEXEDFVPROC glad_glViewportIndexedfv;
  void APIENTRY glad_debug_impl_glViewportIndexedfv(GLuint arg0, const GLfloat * arg1) {    
      _pre_call_callback_gl("glViewportIndexedfv", (void*)glViewportIndexedfv, 2, arg0, arg1);
       glad_glViewportIndexedfv(arg0, arg1);
      _post_call_callback_gl("glViewportIndexedfv", (void*)glViewportIndexedfv, 2, arg0, arg1);
      
  }
  PFNGLVIEWPORTINDEXEDFVPROC glad_debug_glViewportIndexedfv = glad_debug_impl_glViewportIndexedfv;
  PFNGLWAITSYNCPROC glad_glWaitSync;
  void APIENTRY glad_debug_impl_glWaitSync(GLsync arg0, GLbitfield arg1, GLuint64 arg2) {    
      _pre_call_callback_gl("glWaitSync", (void*)glWaitSync, 3, arg0, arg1, arg2);
       glad_glWaitSync(arg0, arg1, arg2);
      _post_call_callback_gl("glWaitSync", (void*)glWaitSync, 3, arg0, arg1, arg2);
      
  }
  PFNGLWAITSYNCPROC glad_debug_glWaitSync = glad_debug_impl_glWaitSync;
  PFNGLWINDOWPOS2DPROC glad_glWindowPos2d;
  void APIENTRY glad_debug_impl_glWindowPos2d(GLdouble arg0, GLdouble arg1) {    
      _pre_call_callback_gl("glWindowPos2d", (void*)glWindowPos2d, 2, arg0, arg1);
       glad_glWindowPos2d(arg0, arg1);
      _post_call_callback_gl("glWindowPos2d", (void*)glWindowPos2d, 2, arg0, arg1);
      
  }
  PFNGLWINDOWPOS2DPROC glad_debug_glWindowPos2d = glad_debug_impl_glWindowPos2d;
  PFNGLWINDOWPOS2DVPROC glad_glWindowPos2dv;
  void APIENTRY glad_debug_impl_glWindowPos2dv(const GLdouble * arg0) {    
      _pre_call_callback_gl("glWindowPos2dv", (void*)glWindowPos2dv, 1, arg0);
       glad_glWindowPos2dv(arg0);
      _post_call_callback_gl("glWindowPos2dv", (void*)glWindowPos2dv, 1, arg0);
      
  }
  PFNGLWINDOWPOS2DVPROC glad_debug_glWindowPos2dv = glad_debug_impl_glWindowPos2dv;
  PFNGLWINDOWPOS2FPROC glad_glWindowPos2f;
  void APIENTRY glad_debug_impl_glWindowPos2f(GLfloat arg0, GLfloat arg1) {    
      _pre_call_callback_gl("glWindowPos2f", (void*)glWindowPos2f, 2, arg0, arg1);
       glad_glWindowPos2f(arg0, arg1);
      _post_call_callback_gl("glWindowPos2f", (void*)glWindowPos2f, 2, arg0, arg1);
      
  }
  PFNGLWINDOWPOS2FPROC glad_debug_glWindowPos2f = glad_debug_impl_glWindowPos2f;
  PFNGLWINDOWPOS2FVPROC glad_glWindowPos2fv;
  void APIENTRY glad_debug_impl_glWindowPos2fv(const GLfloat * arg0) {    
      _pre_call_callback_gl("glWindowPos2fv", (void*)glWindowPos2fv, 1, arg0);
       glad_glWindowPos2fv(arg0);
      _post_call_callback_gl("glWindowPos2fv", (void*)glWindowPos2fv, 1, arg0);
      
  }
  PFNGLWINDOWPOS2FVPROC glad_debug_glWindowPos2fv = glad_debug_impl_glWindowPos2fv;
  PFNGLWINDOWPOS2IPROC glad_glWindowPos2i;
  void APIENTRY glad_debug_impl_glWindowPos2i(GLint arg0, GLint arg1) {    
      _pre_call_callback_gl("glWindowPos2i", (void*)glWindowPos2i, 2, arg0, arg1);
       glad_glWindowPos2i(arg0, arg1);
      _post_call_callback_gl("glWindowPos2i", (void*)glWindowPos2i, 2, arg0, arg1);
      
  }
  PFNGLWINDOWPOS2IPROC glad_debug_glWindowPos2i = glad_debug_impl_glWindowPos2i;
  PFNGLWINDOWPOS2IVPROC glad_glWindowPos2iv;
  void APIENTRY glad_debug_impl_glWindowPos2iv(const GLint * arg0) {    
      _pre_call_callback_gl("glWindowPos2iv", (void*)glWindowPos2iv, 1, arg0);
       glad_glWindowPos2iv(arg0);
      _post_call_callback_gl("glWindowPos2iv", (void*)glWindowPos2iv, 1, arg0);
      
  }
  PFNGLWINDOWPOS2IVPROC glad_debug_glWindowPos2iv = glad_debug_impl_glWindowPos2iv;
  PFNGLWINDOWPOS2SPROC glad_glWindowPos2s;
  void APIENTRY glad_debug_impl_glWindowPos2s(GLshort arg0, GLshort arg1) {    
      _pre_call_callback_gl("glWindowPos2s", (void*)glWindowPos2s, 2, arg0, arg1);
       glad_glWindowPos2s(arg0, arg1);
      _post_call_callback_gl("glWindowPos2s", (void*)glWindowPos2s, 2, arg0, arg1);
      
  }
  PFNGLWINDOWPOS2SPROC glad_debug_glWindowPos2s = glad_debug_impl_glWindowPos2s;
  PFNGLWINDOWPOS2SVPROC glad_glWindowPos2sv;
  void APIENTRY glad_debug_impl_glWindowPos2sv(const GLshort * arg0) {    
      _pre_call_callback_gl("glWindowPos2sv", (void*)glWindowPos2sv, 1, arg0);
       glad_glWindowPos2sv(arg0);
      _post_call_callback_gl("glWindowPos2sv", (void*)glWindowPos2sv, 1, arg0);
      
  }
  PFNGLWINDOWPOS2SVPROC glad_debug_glWindowPos2sv = glad_debug_impl_glWindowPos2sv;
  PFNGLWINDOWPOS3DPROC glad_glWindowPos3d;
  void APIENTRY glad_debug_impl_glWindowPos3d(GLdouble arg0, GLdouble arg1, GLdouble arg2) {    
      _pre_call_callback_gl("glWindowPos3d", (void*)glWindowPos3d, 3, arg0, arg1, arg2);
       glad_glWindowPos3d(arg0, arg1, arg2);
      _post_call_callback_gl("glWindowPos3d", (void*)glWindowPos3d, 3, arg0, arg1, arg2);
      
  }
  PFNGLWINDOWPOS3DPROC glad_debug_glWindowPos3d = glad_debug_impl_glWindowPos3d;
  PFNGLWINDOWPOS3DVPROC glad_glWindowPos3dv;
  void APIENTRY glad_debug_impl_glWindowPos3dv(const GLdouble * arg0) {    
      _pre_call_callback_gl("glWindowPos3dv", (void*)glWindowPos3dv, 1, arg0);
       glad_glWindowPos3dv(arg0);
      _post_call_callback_gl("glWindowPos3dv", (void*)glWindowPos3dv, 1, arg0);
      
  }
  PFNGLWINDOWPOS3DVPROC glad_debug_glWindowPos3dv = glad_debug_impl_glWindowPos3dv;
  PFNGLWINDOWPOS3FPROC glad_glWindowPos3f;
  void APIENTRY glad_debug_impl_glWindowPos3f(GLfloat arg0, GLfloat arg1, GLfloat arg2) {    
      _pre_call_callback_gl("glWindowPos3f", (void*)glWindowPos3f, 3, arg0, arg1, arg2);
       glad_glWindowPos3f(arg0, arg1, arg2);
      _post_call_callback_gl("glWindowPos3f", (void*)glWindowPos3f, 3, arg0, arg1, arg2);
      
  }
  PFNGLWINDOWPOS3FPROC glad_debug_glWindowPos3f = glad_debug_impl_glWindowPos3f;
  PFNGLWINDOWPOS3FVPROC glad_glWindowPos3fv;
  void APIENTRY glad_debug_impl_glWindowPos3fv(const GLfloat * arg0) {    
      _pre_call_callback_gl("glWindowPos3fv", (void*)glWindowPos3fv, 1, arg0);
       glad_glWindowPos3fv(arg0);
      _post_call_callback_gl("glWindowPos3fv", (void*)glWindowPos3fv, 1, arg0);
      
  }
  PFNGLWINDOWPOS3FVPROC glad_debug_glWindowPos3fv = glad_debug_impl_glWindowPos3fv;
  PFNGLWINDOWPOS3IPROC glad_glWindowPos3i;
  void APIENTRY glad_debug_impl_glWindowPos3i(GLint arg0, GLint arg1, GLint arg2) {    
      _pre_call_callback_gl("glWindowPos3i", (void*)glWindowPos3i, 3, arg0, arg1, arg2);
       glad_glWindowPos3i(arg0, arg1, arg2);
      _post_call_callback_gl("glWindowPos3i", (void*)glWindowPos3i, 3, arg0, arg1, arg2);
      
  }
  PFNGLWINDOWPOS3IPROC glad_debug_glWindowPos3i = glad_debug_impl_glWindowPos3i;
  PFNGLWINDOWPOS3IVPROC glad_glWindowPos3iv;
  void APIENTRY glad_debug_impl_glWindowPos3iv(const GLint * arg0) {    
      _pre_call_callback_gl("glWindowPos3iv", (void*)glWindowPos3iv, 1, arg0);
       glad_glWindowPos3iv(arg0);
      _post_call_callback_gl("glWindowPos3iv", (void*)glWindowPos3iv, 1, arg0);
      
  }
  PFNGLWINDOWPOS3IVPROC glad_debug_glWindowPos3iv = glad_debug_impl_glWindowPos3iv;
  PFNGLWINDOWPOS3SPROC glad_glWindowPos3s;
  void APIENTRY glad_debug_impl_glWindowPos3s(GLshort arg0, GLshort arg1, GLshort arg2) {    
      _pre_call_callback_gl("glWindowPos3s", (void*)glWindowPos3s, 3, arg0, arg1, arg2);
       glad_glWindowPos3s(arg0, arg1, arg2);
      _post_call_callback_gl("glWindowPos3s", (void*)glWindowPos3s, 3, arg0, arg1, arg2);
      
  }
  PFNGLWINDOWPOS3SPROC glad_debug_glWindowPos3s = glad_debug_impl_glWindowPos3s;
  PFNGLWINDOWPOS3SVPROC glad_glWindowPos3sv;
  void APIENTRY glad_debug_impl_glWindowPos3sv(const GLshort * arg0) {    
      _pre_call_callback_gl("glWindowPos3sv", (void*)glWindowPos3sv, 1, arg0);
       glad_glWindowPos3sv(arg0);
      _post_call_callback_gl("glWindowPos3sv", (void*)glWindowPos3sv, 1, arg0);
      
  }
  PFNGLWINDOWPOS3SVPROC glad_debug_glWindowPos3sv = glad_debug_impl_glWindowPos3sv;
  static void load_GL_VERSION_1_0(GLADloadproc load) {
  	if(!GLAD_GL_VERSION_1_0) return;
  	glad_glCullFace = (PFNGLCULLFACEPROC)load("glCullFace");
  	glad_glFrontFace = (PFNGLFRONTFACEPROC)load("glFrontFace");
  	glad_glHint = (PFNGLHINTPROC)load("glHint");
  	glad_glLineWidth = (PFNGLLINEWIDTHPROC)load("glLineWidth");
  	glad_glPointSize = (PFNGLPOINTSIZEPROC)load("glPointSize");
  	glad_glPolygonMode = (PFNGLPOLYGONMODEPROC)load("glPolygonMode");
  	glad_glScissor = (PFNGLSCISSORPROC)load("glScissor");
  	glad_glTexParameterf = (PFNGLTEXPARAMETERFPROC)load("glTexParameterf");
  	glad_glTexParameterfv = (PFNGLTEXPARAMETERFVPROC)load("glTexParameterfv");
  	glad_glTexParameteri = (PFNGLTEXPARAMETERIPROC)load("glTexParameteri");
  	glad_glTexParameteriv = (PFNGLTEXPARAMETERIVPROC)load("glTexParameteriv");
  	glad_glTexImage1D = (PFNGLTEXIMAGE1DPROC)load("glTexImage1D");
  	glad_glTexImage2D = (PFNGLTEXIMAGE2DPROC)load("glTexImage2D");
  	glad_glDrawBuffer = (PFNGLDRAWBUFFERPROC)load("glDrawBuffer");
  	glad_glClear = (PFNGLCLEARPROC)load("glClear");
  	glad_glClearColor = (PFNGLCLEARCOLORPROC)load("glClearColor");
  	glad_glClearStencil = (PFNGLCLEARSTENCILPROC)load("glClearStencil");
  	glad_glClearDepth = (PFNGLCLEARDEPTHPROC)load("glClearDepth");
  	glad_glStencilMask = (PFNGLSTENCILMASKPROC)load("glStencilMask");
  	glad_glColorMask = (PFNGLCOLORMASKPROC)load("glColorMask");
  	glad_glDepthMask = (PFNGLDEPTHMASKPROC)load("glDepthMask");
  	glad_glDisable = (PFNGLDISABLEPROC)load("glDisable");
  	glad_glEnable = (PFNGLENABLEPROC)load("glEnable");
  	glad_glFinish = (PFNGLFINISHPROC)load("glFinish");
  	glad_glFlush = (PFNGLFLUSHPROC)load("glFlush");
  	glad_glBlendFunc = (PFNGLBLENDFUNCPROC)load("glBlendFunc");
  	glad_glLogicOp = (PFNGLLOGICOPPROC)load("glLogicOp");
  	glad_glStencilFunc = (PFNGLSTENCILFUNCPROC)load("glStencilFunc");
  	glad_glStencilOp = (PFNGLSTENCILOPPROC)load("glStencilOp");
  	glad_glDepthFunc = (PFNGLDEPTHFUNCPROC)load("glDepthFunc");
  	glad_glPixelStoref = (PFNGLPIXELSTOREFPROC)load("glPixelStoref");
  	glad_glPixelStorei = (PFNGLPIXELSTOREIPROC)load("glPixelStorei");
  	glad_glReadBuffer = (PFNGLREADBUFFERPROC)load("glReadBuffer");
  	glad_glReadPixels = (PFNGLREADPIXELSPROC)load("glReadPixels");
  	glad_glGetBooleanv = (PFNGLGETBOOLEANVPROC)load("glGetBooleanv");
  	glad_glGetDoublev = (PFNGLGETDOUBLEVPROC)load("glGetDoublev");
  	glad_glGetError = (PFNGLGETERRORPROC)load("glGetError");
  	glad_glGetFloatv = (PFNGLGETFLOATVPROC)load("glGetFloatv");
  	glad_glGetIntegerv = (PFNGLGETINTEGERVPROC)load("glGetIntegerv");
  	glad_glGetString = (PFNGLGETSTRINGPROC)load("glGetString");
  	glad_glGetTexImage = (PFNGLGETTEXIMAGEPROC)load("glGetTexImage");
  	glad_glGetTexParameterfv = (PFNGLGETTEXPARAMETERFVPROC)load("glGetTexParameterfv");
  	glad_glGetTexParameteriv = (PFNGLGETTEXPARAMETERIVPROC)load("glGetTexParameteriv");
  	glad_glGetTexLevelParameterfv = (PFNGLGETTEXLEVELPARAMETERFVPROC)load("glGetTexLevelParameterfv");
  	glad_glGetTexLevelParameteriv = (PFNGLGETTEXLEVELPARAMETERIVPROC)load("glGetTexLevelParameteriv");
  	glad_glIsEnabled = (PFNGLISENABLEDPROC)load("glIsEnabled");
  	glad_glDepthRange = (PFNGLDEPTHRANGEPROC)load("glDepthRange");
  	glad_glViewport = (PFNGLVIEWPORTPROC)load("glViewport");
  	glad_glNewList = (PFNGLNEWLISTPROC)load("glNewList");
  	glad_glEndList = (PFNGLENDLISTPROC)load("glEndList");
  	glad_glCallList = (PFNGLCALLLISTPROC)load("glCallList");
  	glad_glCallLists = (PFNGLCALLLISTSPROC)load("glCallLists");
  	glad_glDeleteLists = (PFNGLDELETELISTSPROC)load("glDeleteLists");
  	glad_glGenLists = (PFNGLGENLISTSPROC)load("glGenLists");
  	glad_glListBase = (PFNGLLISTBASEPROC)load("glListBase");
  	glad_glBegin = (PFNGLBEGINPROC)load("glBegin");
  	glad_glBitmap = (PFNGLBITMAPPROC)load("glBitmap");
  	glad_glColor3b = (PFNGLCOLOR3BPROC)load("glColor3b");
  	glad_glColor3bv = (PFNGLCOLOR3BVPROC)load("glColor3bv");
  	glad_glColor3d = (PFNGLCOLOR3DPROC)load("glColor3d");
  	glad_glColor3dv = (PFNGLCOLOR3DVPROC)load("glColor3dv");
  	glad_glColor3f = (PFNGLCOLOR3FPROC)load("glColor3f");
  	glad_glColor3fv = (PFNGLCOLOR3FVPROC)load("glColor3fv");
  	glad_glColor3i = (PFNGLCOLOR3IPROC)load("glColor3i");
  	glad_glColor3iv = (PFNGLCOLOR3IVPROC)load("glColor3iv");
  	glad_glColor3s = (PFNGLCOLOR3SPROC)load("glColor3s");
  	glad_glColor3sv = (PFNGLCOLOR3SVPROC)load("glColor3sv");
  	glad_glColor3ub = (PFNGLCOLOR3UBPROC)load("glColor3ub");
  	glad_glColor3ubv = (PFNGLCOLOR3UBVPROC)load("glColor3ubv");
  	glad_glColor3ui = (PFNGLCOLOR3UIPROC)load("glColor3ui");
  	glad_glColor3uiv = (PFNGLCOLOR3UIVPROC)load("glColor3uiv");
  	glad_glColor3us = (PFNGLCOLOR3USPROC)load("glColor3us");
  	glad_glColor3usv = (PFNGLCOLOR3USVPROC)load("glColor3usv");
  	glad_glColor4b = (PFNGLCOLOR4BPROC)load("glColor4b");
  	glad_glColor4bv = (PFNGLCOLOR4BVPROC)load("glColor4bv");
  	glad_glColor4d = (PFNGLCOLOR4DPROC)load("glColor4d");
  	glad_glColor4dv = (PFNGLCOLOR4DVPROC)load("glColor4dv");
  	glad_glColor4f = (PFNGLCOLOR4FPROC)load("glColor4f");
  	glad_glColor4fv = (PFNGLCOLOR4FVPROC)load("glColor4fv");
  	glad_glColor4i = (PFNGLCOLOR4IPROC)load("glColor4i");
  	glad_glColor4iv = (PFNGLCOLOR4IVPROC)load("glColor4iv");
  	glad_glColor4s = (PFNGLCOLOR4SPROC)load("glColor4s");
  	glad_glColor4sv = (PFNGLCOLOR4SVPROC)load("glColor4sv");
  	glad_glColor4ub = (PFNGLCOLOR4UBPROC)load("glColor4ub");
  	glad_glColor4ubv = (PFNGLCOLOR4UBVPROC)load("glColor4ubv");
  	glad_glColor4ui = (PFNGLCOLOR4UIPROC)load("glColor4ui");
  	glad_glColor4uiv = (PFNGLCOLOR4UIVPROC)load("glColor4uiv");
  	glad_glColor4us = (PFNGLCOLOR4USPROC)load("glColor4us");
  	glad_glColor4usv = (PFNGLCOLOR4USVPROC)load("glColor4usv");
  	glad_glEdgeFlag = (PFNGLEDGEFLAGPROC)load("glEdgeFlag");
  	glad_glEdgeFlagv = (PFNGLEDGEFLAGVPROC)load("glEdgeFlagv");
  	glad_glEnd = (PFNGLENDPROC)load("glEnd");
  	glad_glIndexd = (PFNGLINDEXDPROC)load("glIndexd");
  	glad_glIndexdv = (PFNGLINDEXDVPROC)load("glIndexdv");
  	glad_glIndexf = (PFNGLINDEXFPROC)load("glIndexf");
  	glad_glIndexfv = (PFNGLINDEXFVPROC)load("glIndexfv");
  	glad_glIndexi = (PFNGLINDEXIPROC)load("glIndexi");
  	glad_glIndexiv = (PFNGLINDEXIVPROC)load("glIndexiv");
  	glad_glIndexs = (PFNGLINDEXSPROC)load("glIndexs");
  	glad_glIndexsv = (PFNGLINDEXSVPROC)load("glIndexsv");
  	glad_glNormal3b = (PFNGLNORMAL3BPROC)load("glNormal3b");
  	glad_glNormal3bv = (PFNGLNORMAL3BVPROC)load("glNormal3bv");
  	glad_glNormal3d = (PFNGLNORMAL3DPROC)load("glNormal3d");
  	glad_glNormal3dv = (PFNGLNORMAL3DVPROC)load("glNormal3dv");
  	glad_glNormal3f = (PFNGLNORMAL3FPROC)load("glNormal3f");
  	glad_glNormal3fv = (PFNGLNORMAL3FVPROC)load("glNormal3fv");
  	glad_glNormal3i = (PFNGLNORMAL3IPROC)load("glNormal3i");
  	glad_glNormal3iv = (PFNGLNORMAL3IVPROC)load("glNormal3iv");
  	glad_glNormal3s = (PFNGLNORMAL3SPROC)load("glNormal3s");
  	glad_glNormal3sv = (PFNGLNORMAL3SVPROC)load("glNormal3sv");
  	glad_glRasterPos2d = (PFNGLRASTERPOS2DPROC)load("glRasterPos2d");
  	glad_glRasterPos2dv = (PFNGLRASTERPOS2DVPROC)load("glRasterPos2dv");
  	glad_glRasterPos2f = (PFNGLRASTERPOS2FPROC)load("glRasterPos2f");
  	glad_glRasterPos2fv = (PFNGLRASTERPOS2FVPROC)load("glRasterPos2fv");
  	glad_glRasterPos2i = (PFNGLRASTERPOS2IPROC)load("glRasterPos2i");
  	glad_glRasterPos2iv = (PFNGLRASTERPOS2IVPROC)load("glRasterPos2iv");
  	glad_glRasterPos2s = (PFNGLRASTERPOS2SPROC)load("glRasterPos2s");
  	glad_glRasterPos2sv = (PFNGLRASTERPOS2SVPROC)load("glRasterPos2sv");
  	glad_glRasterPos3d = (PFNGLRASTERPOS3DPROC)load("glRasterPos3d");
  	glad_glRasterPos3dv = (PFNGLRASTERPOS3DVPROC)load("glRasterPos3dv");
  	glad_glRasterPos3f = (PFNGLRASTERPOS3FPROC)load("glRasterPos3f");
  	glad_glRasterPos3fv = (PFNGLRASTERPOS3FVPROC)load("glRasterPos3fv");
  	glad_glRasterPos3i = (PFNGLRASTERPOS3IPROC)load("glRasterPos3i");
  	glad_glRasterPos3iv = (PFNGLRASTERPOS3IVPROC)load("glRasterPos3iv");
  	glad_glRasterPos3s = (PFNGLRASTERPOS3SPROC)load("glRasterPos3s");
  	glad_glRasterPos3sv = (PFNGLRASTERPOS3SVPROC)load("glRasterPos3sv");
  	glad_glRasterPos4d = (PFNGLRASTERPOS4DPROC)load("glRasterPos4d");
  	glad_glRasterPos4dv = (PFNGLRASTERPOS4DVPROC)load("glRasterPos4dv");
  	glad_glRasterPos4f = (PFNGLRASTERPOS4FPROC)load("glRasterPos4f");
  	glad_glRasterPos4fv = (PFNGLRASTERPOS4FVPROC)load("glRasterPos4fv");
  	glad_glRasterPos4i = (PFNGLRASTERPOS4IPROC)load("glRasterPos4i");
  	glad_glRasterPos4iv = (PFNGLRASTERPOS4IVPROC)load("glRasterPos4iv");
  	glad_glRasterPos4s = (PFNGLRASTERPOS4SPROC)load("glRasterPos4s");
  	glad_glRasterPos4sv = (PFNGLRASTERPOS4SVPROC)load("glRasterPos4sv");
  	glad_glRectd = (PFNGLRECTDPROC)load("glRectd");
  	glad_glRectdv = (PFNGLRECTDVPROC)load("glRectdv");
  	glad_glRectf = (PFNGLRECTFPROC)load("glRectf");
  	glad_glRectfv = (PFNGLRECTFVPROC)load("glRectfv");
  	glad_glRecti = (PFNGLRECTIPROC)load("glRecti");
  	glad_glRectiv = (PFNGLRECTIVPROC)load("glRectiv");
  	glad_glRects = (PFNGLRECTSPROC)load("glRects");
  	glad_glRectsv = (PFNGLRECTSVPROC)load("glRectsv");
  	glad_glTexCoord1d = (PFNGLTEXCOORD1DPROC)load("glTexCoord1d");
  	glad_glTexCoord1dv = (PFNGLTEXCOORD1DVPROC)load("glTexCoord1dv");
  	glad_glTexCoord1f = (PFNGLTEXCOORD1FPROC)load("glTexCoord1f");
  	glad_glTexCoord1fv = (PFNGLTEXCOORD1FVPROC)load("glTexCoord1fv");
  	glad_glTexCoord1i = (PFNGLTEXCOORD1IPROC)load("glTexCoord1i");
  	glad_glTexCoord1iv = (PFNGLTEXCOORD1IVPROC)load("glTexCoord1iv");
  	glad_glTexCoord1s = (PFNGLTEXCOORD1SPROC)load("glTexCoord1s");
  	glad_glTexCoord1sv = (PFNGLTEXCOORD1SVPROC)load("glTexCoord1sv");
  	glad_glTexCoord2d = (PFNGLTEXCOORD2DPROC)load("glTexCoord2d");
  	glad_glTexCoord2dv = (PFNGLTEXCOORD2DVPROC)load("glTexCoord2dv");
  	glad_glTexCoord2f = (PFNGLTEXCOORD2FPROC)load("glTexCoord2f");
  	glad_glTexCoord2fv = (PFNGLTEXCOORD2FVPROC)load("glTexCoord2fv");
  	glad_glTexCoord2i = (PFNGLTEXCOORD2IPROC)load("glTexCoord2i");
  	glad_glTexCoord2iv = (PFNGLTEXCOORD2IVPROC)load("glTexCoord2iv");
  	glad_glTexCoord2s = (PFNGLTEXCOORD2SPROC)load("glTexCoord2s");
  	glad_glTexCoord2sv = (PFNGLTEXCOORD2SVPROC)load("glTexCoord2sv");
  	glad_glTexCoord3d = (PFNGLTEXCOORD3DPROC)load("glTexCoord3d");
  	glad_glTexCoord3dv = (PFNGLTEXCOORD3DVPROC)load("glTexCoord3dv");
  	glad_glTexCoord3f = (PFNGLTEXCOORD3FPROC)load("glTexCoord3f");
  	glad_glTexCoord3fv = (PFNGLTEXCOORD3FVPROC)load("glTexCoord3fv");
  	glad_glTexCoord3i = (PFNGLTEXCOORD3IPROC)load("glTexCoord3i");
  	glad_glTexCoord3iv = (PFNGLTEXCOORD3IVPROC)load("glTexCoord3iv");
  	glad_glTexCoord3s = (PFNGLTEXCOORD3SPROC)load("glTexCoord3s");
  	glad_glTexCoord3sv = (PFNGLTEXCOORD3SVPROC)load("glTexCoord3sv");
  	glad_glTexCoord4d = (PFNGLTEXCOORD4DPROC)load("glTexCoord4d");
  	glad_glTexCoord4dv = (PFNGLTEXCOORD4DVPROC)load("glTexCoord4dv");
  	glad_glTexCoord4f = (PFNGLTEXCOORD4FPROC)load("glTexCoord4f");
  	glad_glTexCoord4fv = (PFNGLTEXCOORD4FVPROC)load("glTexCoord4fv");
  	glad_glTexCoord4i = (PFNGLTEXCOORD4IPROC)load("glTexCoord4i");
  	glad_glTexCoord4iv = (PFNGLTEXCOORD4IVPROC)load("glTexCoord4iv");
  	glad_glTexCoord4s = (PFNGLTEXCOORD4SPROC)load("glTexCoord4s");
  	glad_glTexCoord4sv = (PFNGLTEXCOORD4SVPROC)load("glTexCoord4sv");
  	glad_glVertex2d = (PFNGLVERTEX2DPROC)load("glVertex2d");
  	glad_glVertex2dv = (PFNGLVERTEX2DVPROC)load("glVertex2dv");
  	glad_glVertex2f = (PFNGLVERTEX2FPROC)load("glVertex2f");
  	glad_glVertex2fv = (PFNGLVERTEX2FVPROC)load("glVertex2fv");
  	glad_glVertex2i = (PFNGLVERTEX2IPROC)load("glVertex2i");
  	glad_glVertex2iv = (PFNGLVERTEX2IVPROC)load("glVertex2iv");
  	glad_glVertex2s = (PFNGLVERTEX2SPROC)load("glVertex2s");
  	glad_glVertex2sv = (PFNGLVERTEX2SVPROC)load("glVertex2sv");
  	glad_glVertex3d = (PFNGLVERTEX3DPROC)load("glVertex3d");
  	glad_glVertex3dv = (PFNGLVERTEX3DVPROC)load("glVertex3dv");
  	glad_glVertex3f = (PFNGLVERTEX3FPROC)load("glVertex3f");
  	glad_glVertex3fv = (PFNGLVERTEX3FVPROC)load("glVertex3fv");
  	glad_glVertex3i = (PFNGLVERTEX3IPROC)load("glVertex3i");
  	glad_glVertex3iv = (PFNGLVERTEX3IVPROC)load("glVertex3iv");
  	glad_glVertex3s = (PFNGLVERTEX3SPROC)load("glVertex3s");
  	glad_glVertex3sv = (PFNGLVERTEX3SVPROC)load("glVertex3sv");
  	glad_glVertex4d = (PFNGLVERTEX4DPROC)load("glVertex4d");
  	glad_glVertex4dv = (PFNGLVERTEX4DVPROC)load("glVertex4dv");
  	glad_glVertex4f = (PFNGLVERTEX4FPROC)load("glVertex4f");
  	glad_glVertex4fv = (PFNGLVERTEX4FVPROC)load("glVertex4fv");
  	glad_glVertex4i = (PFNGLVERTEX4IPROC)load("glVertex4i");
  	glad_glVertex4iv = (PFNGLVERTEX4IVPROC)load("glVertex4iv");
  	glad_glVertex4s = (PFNGLVERTEX4SPROC)load("glVertex4s");
  	glad_glVertex4sv = (PFNGLVERTEX4SVPROC)load("glVertex4sv");
  	glad_glClipPlane = (PFNGLCLIPPLANEPROC)load("glClipPlane");
  	glad_glColorMaterial = (PFNGLCOLORMATERIALPROC)load("glColorMaterial");
  	glad_glFogf = (PFNGLFOGFPROC)load("glFogf");
  	glad_glFogfv = (PFNGLFOGFVPROC)load("glFogfv");
  	glad_glFogi = (PFNGLFOGIPROC)load("glFogi");
  	glad_glFogiv = (PFNGLFOGIVPROC)load("glFogiv");
  	glad_glLightf = (PFNGLLIGHTFPROC)load("glLightf");
  	glad_glLightfv = (PFNGLLIGHTFVPROC)load("glLightfv");
  	glad_glLighti = (PFNGLLIGHTIPROC)load("glLighti");
  	glad_glLightiv = (PFNGLLIGHTIVPROC)load("glLightiv");
  	glad_glLightModelf = (PFNGLLIGHTMODELFPROC)load("glLightModelf");
  	glad_glLightModelfv = (PFNGLLIGHTMODELFVPROC)load("glLightModelfv");
  	glad_glLightModeli = (PFNGLLIGHTMODELIPROC)load("glLightModeli");
  	glad_glLightModeliv = (PFNGLLIGHTMODELIVPROC)load("glLightModeliv");
  	glad_glLineStipple = (PFNGLLINESTIPPLEPROC)load("glLineStipple");
  	glad_glMaterialf = (PFNGLMATERIALFPROC)load("glMaterialf");
  	glad_glMaterialfv = (PFNGLMATERIALFVPROC)load("glMaterialfv");
  	glad_glMateriali = (PFNGLMATERIALIPROC)load("glMateriali");
  	glad_glMaterialiv = (PFNGLMATERIALIVPROC)load("glMaterialiv");
  	glad_glPolygonStipple = (PFNGLPOLYGONSTIPPLEPROC)load("glPolygonStipple");
  	glad_glShadeModel = (PFNGLSHADEMODELPROC)load("glShadeModel");
  	glad_glTexEnvf = (PFNGLTEXENVFPROC)load("glTexEnvf");
  	glad_glTexEnvfv = (PFNGLTEXENVFVPROC)load("glTexEnvfv");
  	glad_glTexEnvi = (PFNGLTEXENVIPROC)load("glTexEnvi");
  	glad_glTexEnviv = (PFNGLTEXENVIVPROC)load("glTexEnviv");
  	glad_glTexGend = (PFNGLTEXGENDPROC)load("glTexGend");
  	glad_glTexGendv = (PFNGLTEXGENDVPROC)load("glTexGendv");
  	glad_glTexGenf = (PFNGLTEXGENFPROC)load("glTexGenf");
  	glad_glTexGenfv = (PFNGLTEXGENFVPROC)load("glTexGenfv");
  	glad_glTexGeni = (PFNGLTEXGENIPROC)load("glTexGeni");
  	glad_glTexGeniv = (PFNGLTEXGENIVPROC)load("glTexGeniv");
  	glad_glFeedbackBuffer = (PFNGLFEEDBACKBUFFERPROC)load("glFeedbackBuffer");
  	glad_glSelectBuffer = (PFNGLSELECTBUFFERPROC)load("glSelectBuffer");
  	glad_glRenderMode = (PFNGLRENDERMODEPROC)load("glRenderMode");
  	glad_glInitNames = (PFNGLINITNAMESPROC)load("glInitNames");
  	glad_glLoadName = (PFNGLLOADNAMEPROC)load("glLoadName");
  	glad_glPassThrough = (PFNGLPASSTHROUGHPROC)load("glPassThrough");
  	glad_glPopName = (PFNGLPOPNAMEPROC)load("glPopName");
  	glad_glPushName = (PFNGLPUSHNAMEPROC)load("glPushName");
  	glad_glClearAccum = (PFNGLCLEARACCUMPROC)load("glClearAccum");
  	glad_glClearIndex = (PFNGLCLEARINDEXPROC)load("glClearIndex");
  	glad_glIndexMask = (PFNGLINDEXMASKPROC)load("glIndexMask");
  	glad_glAccum = (PFNGLACCUMPROC)load("glAccum");
  	glad_glPopAttrib = (PFNGLPOPATTRIBPROC)load("glPopAttrib");
  	glad_glPushAttrib = (PFNGLPUSHATTRIBPROC)load("glPushAttrib");
  	glad_glMap1d = (PFNGLMAP1DPROC)load("glMap1d");
  	glad_glMap1f = (PFNGLMAP1FPROC)load("glMap1f");
  	glad_glMap2d = (PFNGLMAP2DPROC)load("glMap2d");
  	glad_glMap2f = (PFNGLMAP2FPROC)load("glMap2f");
  	glad_glMapGrid1d = (PFNGLMAPGRID1DPROC)load("glMapGrid1d");
  	glad_glMapGrid1f = (PFNGLMAPGRID1FPROC)load("glMapGrid1f");
  	glad_glMapGrid2d = (PFNGLMAPGRID2DPROC)load("glMapGrid2d");
  	glad_glMapGrid2f = (PFNGLMAPGRID2FPROC)load("glMapGrid2f");
  	glad_glEvalCoord1d = (PFNGLEVALCOORD1DPROC)load("glEvalCoord1d");
  	glad_glEvalCoord1dv = (PFNGLEVALCOORD1DVPROC)load("glEvalCoord1dv");
  	glad_glEvalCoord1f = (PFNGLEVALCOORD1FPROC)load("glEvalCoord1f");
  	glad_glEvalCoord1fv = (PFNGLEVALCOORD1FVPROC)load("glEvalCoord1fv");
  	glad_glEvalCoord2d = (PFNGLEVALCOORD2DPROC)load("glEvalCoord2d");
  	glad_glEvalCoord2dv = (PFNGLEVALCOORD2DVPROC)load("glEvalCoord2dv");
  	glad_glEvalCoord2f = (PFNGLEVALCOORD2FPROC)load("glEvalCoord2f");
  	glad_glEvalCoord2fv = (PFNGLEVALCOORD2FVPROC)load("glEvalCoord2fv");
  	glad_glEvalMesh1 = (PFNGLEVALMESH1PROC)load("glEvalMesh1");
  	glad_glEvalPoint1 = (PFNGLEVALPOINT1PROC)load("glEvalPoint1");
  	glad_glEvalMesh2 = (PFNGLEVALMESH2PROC)load("glEvalMesh2");
  	glad_glEvalPoint2 = (PFNGLEVALPOINT2PROC)load("glEvalPoint2");
  	glad_glAlphaFunc = (PFNGLALPHAFUNCPROC)load("glAlphaFunc");
  	glad_glPixelZoom = (PFNGLPIXELZOOMPROC)load("glPixelZoom");
  	glad_glPixelTransferf = (PFNGLPIXELTRANSFERFPROC)load("glPixelTransferf");
  	glad_glPixelTransferi = (PFNGLPIXELTRANSFERIPROC)load("glPixelTransferi");
  	glad_glPixelMapfv = (PFNGLPIXELMAPFVPROC)load("glPixelMapfv");
  	glad_glPixelMapuiv = (PFNGLPIXELMAPUIVPROC)load("glPixelMapuiv");
  	glad_glPixelMapusv = (PFNGLPIXELMAPUSVPROC)load("glPixelMapusv");
  	glad_glCopyPixels = (PFNGLCOPYPIXELSPROC)load("glCopyPixels");
  	glad_glDrawPixels = (PFNGLDRAWPIXELSPROC)load("glDrawPixels");
  	glad_glGetClipPlane = (PFNGLGETCLIPPLANEPROC)load("glGetClipPlane");
  	glad_glGetLightfv = (PFNGLGETLIGHTFVPROC)load("glGetLightfv");
  	glad_glGetLightiv = (PFNGLGETLIGHTIVPROC)load("glGetLightiv");
  	glad_glGetMapdv = (PFNGLGETMAPDVPROC)load("glGetMapdv");
  	glad_glGetMapfv = (PFNGLGETMAPFVPROC)load("glGetMapfv");
  	glad_glGetMapiv = (PFNGLGETMAPIVPROC)load("glGetMapiv");
  	glad_glGetMaterialfv = (PFNGLGETMATERIALFVPROC)load("glGetMaterialfv");
  	glad_glGetMaterialiv = (PFNGLGETMATERIALIVPROC)load("glGetMaterialiv");
  	glad_glGetPixelMapfv = (PFNGLGETPIXELMAPFVPROC)load("glGetPixelMapfv");
  	glad_glGetPixelMapuiv = (PFNGLGETPIXELMAPUIVPROC)load("glGetPixelMapuiv");
  	glad_glGetPixelMapusv = (PFNGLGETPIXELMAPUSVPROC)load("glGetPixelMapusv");
  	glad_glGetPolygonStipple = (PFNGLGETPOLYGONSTIPPLEPROC)load("glGetPolygonStipple");
  	glad_glGetTexEnvfv = (PFNGLGETTEXENVFVPROC)load("glGetTexEnvfv");
  	glad_glGetTexEnviv = (PFNGLGETTEXENVIVPROC)load("glGetTexEnviv");
  	glad_glGetTexGendv = (PFNGLGETTEXGENDVPROC)load("glGetTexGendv");
  	glad_glGetTexGenfv = (PFNGLGETTEXGENFVPROC)load("glGetTexGenfv");
  	glad_glGetTexGeniv = (PFNGLGETTEXGENIVPROC)load("glGetTexGeniv");
  	glad_glIsList = (PFNGLISLISTPROC)load("glIsList");
  	glad_glFrustum = (PFNGLFRUSTUMPROC)load("glFrustum");
  	glad_glLoadIdentity = (PFNGLLOADIDENTITYPROC)load("glLoadIdentity");
  	glad_glLoadMatrixf = (PFNGLLOADMATRIXFPROC)load("glLoadMatrixf");
  	glad_glLoadMatrixd = (PFNGLLOADMATRIXDPROC)load("glLoadMatrixd");
  	glad_glMatrixMode = (PFNGLMATRIXMODEPROC)load("glMatrixMode");
  	glad_glMultMatrixf = (PFNGLMULTMATRIXFPROC)load("glMultMatrixf");
  	glad_glMultMatrixd = (PFNGLMULTMATRIXDPROC)load("glMultMatrixd");
  	glad_glOrtho = (PFNGLORTHOPROC)load("glOrtho");
  	glad_glPopMatrix = (PFNGLPOPMATRIXPROC)load("glPopMatrix");
  	glad_glPushMatrix = (PFNGLPUSHMATRIXPROC)load("glPushMatrix");
  	glad_glRotated = (PFNGLROTATEDPROC)load("glRotated");
  	glad_glRotatef = (PFNGLROTATEFPROC)load("glRotatef");
  	glad_glScaled = (PFNGLSCALEDPROC)load("glScaled");
  	glad_glScalef = (PFNGLSCALEFPROC)load("glScalef");
  	glad_glTranslated = (PFNGLTRANSLATEDPROC)load("glTranslated");
  	glad_glTranslatef = (PFNGLTRANSLATEFPROC)load("glTranslatef");
  }
  static void load_GL_VERSION_1_1(GLADloadproc load) {
  	if(!GLAD_GL_VERSION_1_1) return;
  	glad_glDrawArrays = (PFNGLDRAWARRAYSPROC)load("glDrawArrays");
  	glad_glDrawElements = (PFNGLDRAWELEMENTSPROC)load("glDrawElements");
  	glad_glGetPointerv = (PFNGLGETPOINTERVPROC)load("glGetPointerv");
  	glad_glPolygonOffset = (PFNGLPOLYGONOFFSETPROC)load("glPolygonOffset");
  	glad_glCopyTexImage1D = (PFNGLCOPYTEXIMAGE1DPROC)load("glCopyTexImage1D");
  	glad_glCopyTexImage2D = (PFNGLCOPYTEXIMAGE2DPROC)load("glCopyTexImage2D");
  	glad_glCopyTexSubImage1D = (PFNGLCOPYTEXSUBIMAGE1DPROC)load("glCopyTexSubImage1D");
  	glad_glCopyTexSubImage2D = (PFNGLCOPYTEXSUBIMAGE2DPROC)load("glCopyTexSubImage2D");
  	glad_glTexSubImage1D = (PFNGLTEXSUBIMAGE1DPROC)load("glTexSubImage1D");
  	glad_glTexSubImage2D = (PFNGLTEXSUBIMAGE2DPROC)load("glTexSubImage2D");
  	glad_glBindTexture = (PFNGLBINDTEXTUREPROC)load("glBindTexture");
  	glad_glDeleteTextures = (PFNGLDELETETEXTURESPROC)load("glDeleteTextures");
  	glad_glGenTextures = (PFNGLGENTEXTURESPROC)load("glGenTextures");
  	glad_glIsTexture = (PFNGLISTEXTUREPROC)load("glIsTexture");
  	glad_glArrayElement = (PFNGLARRAYELEMENTPROC)load("glArrayElement");
  	glad_glColorPointer = (PFNGLCOLORPOINTERPROC)load("glColorPointer");
  	glad_glDisableClientState = (PFNGLDISABLECLIENTSTATEPROC)load("glDisableClientState");
  	glad_glEdgeFlagPointer = (PFNGLEDGEFLAGPOINTERPROC)load("glEdgeFlagPointer");
  	glad_glEnableClientState = (PFNGLENABLECLIENTSTATEPROC)load("glEnableClientState");
  	glad_glIndexPointer = (PFNGLINDEXPOINTERPROC)load("glIndexPointer");
  	glad_glInterleavedArrays = (PFNGLINTERLEAVEDARRAYSPROC)load("glInterleavedArrays");
  	glad_glNormalPointer = (PFNGLNORMALPOINTERPROC)load("glNormalPointer");
  	glad_glTexCoordPointer = (PFNGLTEXCOORDPOINTERPROC)load("glTexCoordPointer");
  	glad_glVertexPointer = (PFNGLVERTEXPOINTERPROC)load("glVertexPointer");
  	glad_glAreTexturesResident = (PFNGLARETEXTURESRESIDENTPROC)load("glAreTexturesResident");
  	glad_glPrioritizeTextures = (PFNGLPRIORITIZETEXTURESPROC)load("glPrioritizeTextures");
  	glad_glIndexub = (PFNGLINDEXUBPROC)load("glIndexub");
  	glad_glIndexubv = (PFNGLINDEXUBVPROC)load("glIndexubv");
  	glad_glPopClientAttrib = (PFNGLPOPCLIENTATTRIBPROC)load("glPopClientAttrib");
  	glad_glPushClientAttrib = (PFNGLPUSHCLIENTATTRIBPROC)load("glPushClientAttrib");
  }
  static void load_GL_VERSION_1_2(GLADloadproc load) {
  	if(!GLAD_GL_VERSION_1_2) return;
  	glad_glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC)load("glDrawRangeElements");
  	glad_glTexImage3D = (PFNGLTEXIMAGE3DPROC)load("glTexImage3D");
  	glad_glTexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC)load("glTexSubImage3D");
  	glad_glCopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC)load("glCopyTexSubImage3D");
  }
  static void load_GL_VERSION_1_3(GLADloadproc load) {
  	if(!GLAD_GL_VERSION_1_3) return;
  	glad_glActiveTexture = (PFNGLACTIVETEXTUREPROC)load("glActiveTexture");
  	glad_glSampleCoverage = (PFNGLSAMPLECOVERAGEPROC)load("glSampleCoverage");
  	glad_glCompressedTexImage3D = (PFNGLCOMPRESSEDTEXIMAGE3DPROC)load("glCompressedTexImage3D");
  	glad_glCompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC)load("glCompressedTexImage2D");
  	glad_glCompressedTexImage1D = (PFNGLCOMPRESSEDTEXIMAGE1DPROC)load("glCompressedTexImage1D");
  	glad_glCompressedTexSubImage3D = (PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)load("glCompressedTexSubImage3D");
  	glad_glCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)load("glCompressedTexSubImage2D");
  	glad_glCompressedTexSubImage1D = (PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)load("glCompressedTexSubImage1D");
  	glad_glGetCompressedTexImage = (PFNGLGETCOMPRESSEDTEXIMAGEPROC)load("glGetCompressedTexImage");
  	glad_glClientActiveTexture = (PFNGLCLIENTACTIVETEXTUREPROC)load("glClientActiveTexture");
  	glad_glMultiTexCoord1d = (PFNGLMULTITEXCOORD1DPROC)load("glMultiTexCoord1d");
  	glad_glMultiTexCoord1dv = (PFNGLMULTITEXCOORD1DVPROC)load("glMultiTexCoord1dv");
  	glad_glMultiTexCoord1f = (PFNGLMULTITEXCOORD1FPROC)load("glMultiTexCoord1f");
  	glad_glMultiTexCoord1fv = (PFNGLMULTITEXCOORD1FVPROC)load("glMultiTexCoord1fv");
  	glad_glMultiTexCoord1i = (PFNGLMULTITEXCOORD1IPROC)load("glMultiTexCoord1i");
  	glad_glMultiTexCoord1iv = (PFNGLMULTITEXCOORD1IVPROC)load("glMultiTexCoord1iv");
  	glad_glMultiTexCoord1s = (PFNGLMULTITEXCOORD1SPROC)load("glMultiTexCoord1s");
  	glad_glMultiTexCoord1sv = (PFNGLMULTITEXCOORD1SVPROC)load("glMultiTexCoord1sv");
  	glad_glMultiTexCoord2d = (PFNGLMULTITEXCOORD2DPROC)load("glMultiTexCoord2d");
  	glad_glMultiTexCoord2dv = (PFNGLMULTITEXCOORD2DVPROC)load("glMultiTexCoord2dv");
  	glad_glMultiTexCoord2f = (PFNGLMULTITEXCOORD2FPROC)load("glMultiTexCoord2f");
  	glad_glMultiTexCoord2fv = (PFNGLMULTITEXCOORD2FVPROC)load("glMultiTexCoord2fv");
  	glad_glMultiTexCoord2i = (PFNGLMULTITEXCOORD2IPROC)load("glMultiTexCoord2i");
  	glad_glMultiTexCoord2iv = (PFNGLMULTITEXCOORD2IVPROC)load("glMultiTexCoord2iv");
  	glad_glMultiTexCoord2s = (PFNGLMULTITEXCOORD2SPROC)load("glMultiTexCoord2s");
  	glad_glMultiTexCoord2sv = (PFNGLMULTITEXCOORD2SVPROC)load("glMultiTexCoord2sv");
  	glad_glMultiTexCoord3d = (PFNGLMULTITEXCOORD3DPROC)load("glMultiTexCoord3d");
  	glad_glMultiTexCoord3dv = (PFNGLMULTITEXCOORD3DVPROC)load("glMultiTexCoord3dv");
  	glad_glMultiTexCoord3f = (PFNGLMULTITEXCOORD3FPROC)load("glMultiTexCoord3f");
  	glad_glMultiTexCoord3fv = (PFNGLMULTITEXCOORD3FVPROC)load("glMultiTexCoord3fv");
  	glad_glMultiTexCoord3i = (PFNGLMULTITEXCOORD3IPROC)load("glMultiTexCoord3i");
  	glad_glMultiTexCoord3iv = (PFNGLMULTITEXCOORD3IVPROC)load("glMultiTexCoord3iv");
  	glad_glMultiTexCoord3s = (PFNGLMULTITEXCOORD3SPROC)load("glMultiTexCoord3s");
  	glad_glMultiTexCoord3sv = (PFNGLMULTITEXCOORD3SVPROC)load("glMultiTexCoord3sv");
  	glad_glMultiTexCoord4d = (PFNGLMULTITEXCOORD4DPROC)load("glMultiTexCoord4d");
  	glad_glMultiTexCoord4dv = (PFNGLMULTITEXCOORD4DVPROC)load("glMultiTexCoord4dv");
  	glad_glMultiTexCoord4f = (PFNGLMULTITEXCOORD4FPROC)load("glMultiTexCoord4f");
  	glad_glMultiTexCoord4fv = (PFNGLMULTITEXCOORD4FVPROC)load("glMultiTexCoord4fv");
  	glad_glMultiTexCoord4i = (PFNGLMULTITEXCOORD4IPROC)load("glMultiTexCoord4i");
  	glad_glMultiTexCoord4iv = (PFNGLMULTITEXCOORD4IVPROC)load("glMultiTexCoord4iv");
  	glad_glMultiTexCoord4s = (PFNGLMULTITEXCOORD4SPROC)load("glMultiTexCoord4s");
  	glad_glMultiTexCoord4sv = (PFNGLMULTITEXCOORD4SVPROC)load("glMultiTexCoord4sv");
  	glad_glLoadTransposeMatrixf = (PFNGLLOADTRANSPOSEMATRIXFPROC)load("glLoadTransposeMatrixf");
  	glad_glLoadTransposeMatrixd = (PFNGLLOADTRANSPOSEMATRIXDPROC)load("glLoadTransposeMatrixd");
  	glad_glMultTransposeMatrixf = (PFNGLMULTTRANSPOSEMATRIXFPROC)load("glMultTransposeMatrixf");
  	glad_glMultTransposeMatrixd = (PFNGLMULTTRANSPOSEMATRIXDPROC)load("glMultTransposeMatrixd");
  }
  static void load_GL_VERSION_1_4(GLADloadproc load) {
  	if(!GLAD_GL_VERSION_1_4) return;
  	glad_glBlendFuncSeparate = (PFNGLBLENDFUNCSEPARATEPROC)load("glBlendFuncSeparate");
  	glad_glMultiDrawArrays = (PFNGLMULTIDRAWARRAYSPROC)load("glMultiDrawArrays");
  	glad_glMultiDrawElements = (PFNGLMULTIDRAWELEMENTSPROC)load("glMultiDrawElements");
  	glad_glPointParameterf = (PFNGLPOINTPARAMETERFPROC)load("glPointParameterf");
  	glad_glPointParameterfv = (PFNGLPOINTPARAMETERFVPROC)load("glPointParameterfv");
  	glad_glPointParameteri = (PFNGLPOINTPARAMETERIPROC)load("glPointParameteri");
  	glad_glPointParameteriv = (PFNGLPOINTPARAMETERIVPROC)load("glPointParameteriv");
  	glad_glFogCoordf = (PFNGLFOGCOORDFPROC)load("glFogCoordf");
  	glad_glFogCoordfv = (PFNGLFOGCOORDFVPROC)load("glFogCoordfv");
  	glad_glFogCoordd = (PFNGLFOGCOORDDPROC)load("glFogCoordd");
  	glad_glFogCoorddv = (PFNGLFOGCOORDDVPROC)load("glFogCoorddv");
  	glad_glFogCoordPointer = (PFNGLFOGCOORDPOINTERPROC)load("glFogCoordPointer");
  	glad_glSecondaryColor3b = (PFNGLSECONDARYCOLOR3BPROC)load("glSecondaryColor3b");
  	glad_glSecondaryColor3bv = (PFNGLSECONDARYCOLOR3BVPROC)load("glSecondaryColor3bv");
  	glad_glSecondaryColor3d = (PFNGLSECONDARYCOLOR3DPROC)load("glSecondaryColor3d");
  	glad_glSecondaryColor3dv = (PFNGLSECONDARYCOLOR3DVPROC)load("glSecondaryColor3dv");
  	glad_glSecondaryColor3f = (PFNGLSECONDARYCOLOR3FPROC)load("glSecondaryColor3f");
  	glad_glSecondaryColor3fv = (PFNGLSECONDARYCOLOR3FVPROC)load("glSecondaryColor3fv");
  	glad_glSecondaryColor3i = (PFNGLSECONDARYCOLOR3IPROC)load("glSecondaryColor3i");
  	glad_glSecondaryColor3iv = (PFNGLSECONDARYCOLOR3IVPROC)load("glSecondaryColor3iv");
  	glad_glSecondaryColor3s = (PFNGLSECONDARYCOLOR3SPROC)load("glSecondaryColor3s");
  	glad_glSecondaryColor3sv = (PFNGLSECONDARYCOLOR3SVPROC)load("glSecondaryColor3sv");
  	glad_glSecondaryColor3ub = (PFNGLSECONDARYCOLOR3UBPROC)load("glSecondaryColor3ub");
  	glad_glSecondaryColor3ubv = (PFNGLSECONDARYCOLOR3UBVPROC)load("glSecondaryColor3ubv");
  	glad_glSecondaryColor3ui = (PFNGLSECONDARYCOLOR3UIPROC)load("glSecondaryColor3ui");
  	glad_glSecondaryColor3uiv = (PFNGLSECONDARYCOLOR3UIVPROC)load("glSecondaryColor3uiv");
  	glad_glSecondaryColor3us = (PFNGLSECONDARYCOLOR3USPROC)load("glSecondaryColor3us");
  	glad_glSecondaryColor3usv = (PFNGLSECONDARYCOLOR3USVPROC)load("glSecondaryColor3usv");
  	glad_glSecondaryColorPointer = (PFNGLSECONDARYCOLORPOINTERPROC)load("glSecondaryColorPointer");
  	glad_glWindowPos2d = (PFNGLWINDOWPOS2DPROC)load("glWindowPos2d");
  	glad_glWindowPos2dv = (PFNGLWINDOWPOS2DVPROC)load("glWindowPos2dv");
  	glad_glWindowPos2f = (PFNGLWINDOWPOS2FPROC)load("glWindowPos2f");
  	glad_glWindowPos2fv = (PFNGLWINDOWPOS2FVPROC)load("glWindowPos2fv");
  	glad_glWindowPos2i = (PFNGLWINDOWPOS2IPROC)load("glWindowPos2i");
  	glad_glWindowPos2iv = (PFNGLWINDOWPOS2IVPROC)load("glWindowPos2iv");
  	glad_glWindowPos2s = (PFNGLWINDOWPOS2SPROC)load("glWindowPos2s");
  	glad_glWindowPos2sv = (PFNGLWINDOWPOS2SVPROC)load("glWindowPos2sv");
  	glad_glWindowPos3d = (PFNGLWINDOWPOS3DPROC)load("glWindowPos3d");
  	glad_glWindowPos3dv = (PFNGLWINDOWPOS3DVPROC)load("glWindowPos3dv");
  	glad_glWindowPos3f = (PFNGLWINDOWPOS3FPROC)load("glWindowPos3f");
  	glad_glWindowPos3fv = (PFNGLWINDOWPOS3FVPROC)load("glWindowPos3fv");
  	glad_glWindowPos3i = (PFNGLWINDOWPOS3IPROC)load("glWindowPos3i");
  	glad_glWindowPos3iv = (PFNGLWINDOWPOS3IVPROC)load("glWindowPos3iv");
  	glad_glWindowPos3s = (PFNGLWINDOWPOS3SPROC)load("glWindowPos3s");
  	glad_glWindowPos3sv = (PFNGLWINDOWPOS3SVPROC)load("glWindowPos3sv");
  	glad_glBlendColor = (PFNGLBLENDCOLORPROC)load("glBlendColor");
  	glad_glBlendEquation = (PFNGLBLENDEQUATIONPROC)load("glBlendEquation");
  }
  static void load_GL_VERSION_1_5(GLADloadproc load) {
  	if(!GLAD_GL_VERSION_1_5) return;
  	glad_glGenQueries = (PFNGLGENQUERIESPROC)load("glGenQueries");
  	glad_glDeleteQueries = (PFNGLDELETEQUERIESPROC)load("glDeleteQueries");
  	glad_glIsQuery = (PFNGLISQUERYPROC)load("glIsQuery");
  	glad_glBeginQuery = (PFNGLBEGINQUERYPROC)load("glBeginQuery");
  	glad_glEndQuery = (PFNGLENDQUERYPROC)load("glEndQuery");
  	glad_glGetQueryiv = (PFNGLGETQUERYIVPROC)load("glGetQueryiv");
  	glad_glGetQueryObjectiv = (PFNGLGETQUERYOBJECTIVPROC)load("glGetQueryObjectiv");
  	glad_glGetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC)load("glGetQueryObjectuiv");
  	glad_glBindBuffer = (PFNGLBINDBUFFERPROC)load("glBindBuffer");
  	glad_glDeleteBuffers = (PFNGLDELETEBUFFERSPROC)load("glDeleteBuffers");
  	glad_glGenBuffers = (PFNGLGENBUFFERSPROC)load("glGenBuffers");
  	glad_glIsBuffer = (PFNGLISBUFFERPROC)load("glIsBuffer");
  	glad_glBufferData = (PFNGLBUFFERDATAPROC)load("glBufferData");
  	glad_glBufferSubData = (PFNGLBUFFERSUBDATAPROC)load("glBufferSubData");
  	glad_glGetBufferSubData = (PFNGLGETBUFFERSUBDATAPROC)load("glGetBufferSubData");
  	glad_glMapBuffer = (PFNGLMAPBUFFERPROC)load("glMapBuffer");
  	glad_glUnmapBuffer = (PFNGLUNMAPBUFFERPROC)load("glUnmapBuffer");
  	glad_glGetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC)load("glGetBufferParameteriv");
  	glad_glGetBufferPointerv = (PFNGLGETBUFFERPOINTERVPROC)load("glGetBufferPointerv");
  }
  static void load_GL_VERSION_2_0(GLADloadproc load) {
  	if(!GLAD_GL_VERSION_2_0) return;
  	glad_glBlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC)load("glBlendEquationSeparate");
  	glad_glDrawBuffers = (PFNGLDRAWBUFFERSPROC)load("glDrawBuffers");
  	glad_glStencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC)load("glStencilOpSeparate");
  	glad_glStencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC)load("glStencilFuncSeparate");
  	glad_glStencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC)load("glStencilMaskSeparate");
  	glad_glAttachShader = (PFNGLATTACHSHADERPROC)load("glAttachShader");
  	glad_glBindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC)load("glBindAttribLocation");
  	glad_glCompileShader = (PFNGLCOMPILESHADERPROC)load("glCompileShader");
  	glad_glCreateProgram = (PFNGLCREATEPROGRAMPROC)load("glCreateProgram");
  	glad_glCreateShader = (PFNGLCREATESHADERPROC)load("glCreateShader");
  	glad_glDeleteProgram = (PFNGLDELETEPROGRAMPROC)load("glDeleteProgram");
  	glad_glDeleteShader = (PFNGLDELETESHADERPROC)load("glDeleteShader");
  	glad_glDetachShader = (PFNGLDETACHSHADERPROC)load("glDetachShader");
  	glad_glDisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC)load("glDisableVertexAttribArray");
  	glad_glEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC)load("glEnableVertexAttribArray");
  	glad_glGetActiveAttrib = (PFNGLGETACTIVEATTRIBPROC)load("glGetActiveAttrib");
  	glad_glGetActiveUniform = (PFNGLGETACTIVEUNIFORMPROC)load("glGetActiveUniform");
  	glad_glGetAttachedShaders = (PFNGLGETATTACHEDSHADERSPROC)load("glGetAttachedShaders");
  	glad_glGetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC)load("glGetAttribLocation");
  	glad_glGetProgramiv = (PFNGLGETPROGRAMIVPROC)load("glGetProgramiv");
  	glad_glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC)load("glGetProgramInfoLog");
  	glad_glGetShaderiv = (PFNGLGETSHADERIVPROC)load("glGetShaderiv");
  	glad_glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC)load("glGetShaderInfoLog");
  	glad_glGetShaderSource = (PFNGLGETSHADERSOURCEPROC)load("glGetShaderSource");
  	glad_glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC)load("glGetUniformLocation");
  	glad_glGetUniformfv = (PFNGLGETUNIFORMFVPROC)load("glGetUniformfv");
  	glad_glGetUniformiv = (PFNGLGETUNIFORMIVPROC)load("glGetUniformiv");
  	glad_glGetVertexAttribdv = (PFNGLGETVERTEXATTRIBDVPROC)load("glGetVertexAttribdv");
  	glad_glGetVertexAttribfv = (PFNGLGETVERTEXATTRIBFVPROC)load("glGetVertexAttribfv");
  	glad_glGetVertexAttribiv = (PFNGLGETVERTEXATTRIBIVPROC)load("glGetVertexAttribiv");
  	glad_glGetVertexAttribPointerv = (PFNGLGETVERTEXATTRIBPOINTERVPROC)load("glGetVertexAttribPointerv");
  	glad_glIsProgram = (PFNGLISPROGRAMPROC)load("glIsProgram");
  	glad_glIsShader = (PFNGLISSHADERPROC)load("glIsShader");
  	glad_glLinkProgram = (PFNGLLINKPROGRAMPROC)load("glLinkProgram");
  	glad_glShaderSource = (PFNGLSHADERSOURCEPROC)load("glShaderSource");
  	glad_glUseProgram = (PFNGLUSEPROGRAMPROC)load("glUseProgram");
  	glad_glUniform1f = (PFNGLUNIFORM1FPROC)load("glUniform1f");
  	glad_glUniform2f = (PFNGLUNIFORM2FPROC)load("glUniform2f");
  	glad_glUniform3f = (PFNGLUNIFORM3FPROC)load("glUniform3f");
  	glad_glUniform4f = (PFNGLUNIFORM4FPROC)load("glUniform4f");
  	glad_glUniform1i = (PFNGLUNIFORM1IPROC)load("glUniform1i");
  	glad_glUniform2i = (PFNGLUNIFORM2IPROC)load("glUniform2i");
  	glad_glUniform3i = (PFNGLUNIFORM3IPROC)load("glUniform3i");
  	glad_glUniform4i = (PFNGLUNIFORM4IPROC)load("glUniform4i");
  	glad_glUniform1fv = (PFNGLUNIFORM1FVPROC)load("glUniform1fv");
  	glad_glUniform2fv = (PFNGLUNIFORM2FVPROC)load("glUniform2fv");
  	glad_glUniform3fv = (PFNGLUNIFORM3FVPROC)load("glUniform3fv");
  	glad_glUniform4fv = (PFNGLUNIFORM4FVPROC)load("glUniform4fv");
  	glad_glUniform1iv = (PFNGLUNIFORM1IVPROC)load("glUniform1iv");
  	glad_glUniform2iv = (PFNGLUNIFORM2IVPROC)load("glUniform2iv");
  	glad_glUniform3iv = (PFNGLUNIFORM3IVPROC)load("glUniform3iv");
  	glad_glUniform4iv = (PFNGLUNIFORM4IVPROC)load("glUniform4iv");
  	glad_glUniformMatrix2fv = (PFNGLUNIFORMMATRIX2FVPROC)load("glUniformMatrix2fv");
  	glad_glUniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC)load("glUniformMatrix3fv");
  	glad_glUniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC)load("glUniformMatrix4fv");
  	glad_glValidateProgram = (PFNGLVALIDATEPROGRAMPROC)load("glValidateProgram");
  	glad_glVertexAttrib1d = (PFNGLVERTEXATTRIB1DPROC)load("glVertexAttrib1d");
  	glad_glVertexAttrib1dv = (PFNGLVERTEXATTRIB1DVPROC)load("glVertexAttrib1dv");
  	glad_glVertexAttrib1f = (PFNGLVERTEXATTRIB1FPROC)load("glVertexAttrib1f");
  	glad_glVertexAttrib1fv = (PFNGLVERTEXATTRIB1FVPROC)load("glVertexAttrib1fv");
  	glad_glVertexAttrib1s = (PFNGLVERTEXATTRIB1SPROC)load("glVertexAttrib1s");
  	glad_glVertexAttrib1sv = (PFNGLVERTEXATTRIB1SVPROC)load("glVertexAttrib1sv");
  	glad_glVertexAttrib2d = (PFNGLVERTEXATTRIB2DPROC)load("glVertexAttrib2d");
  	glad_glVertexAttrib2dv = (PFNGLVERTEXATTRIB2DVPROC)load("glVertexAttrib2dv");
  	glad_glVertexAttrib2f = (PFNGLVERTEXATTRIB2FPROC)load("glVertexAttrib2f");
  	glad_glVertexAttrib2fv = (PFNGLVERTEXATTRIB2FVPROC)load("glVertexAttrib2fv");
  	glad_glVertexAttrib2s = (PFNGLVERTEXATTRIB2SPROC)load("glVertexAttrib2s");
  	glad_glVertexAttrib2sv = (PFNGLVERTEXATTRIB2SVPROC)load("glVertexAttrib2sv");
  	glad_glVertexAttrib3d = (PFNGLVERTEXATTRIB3DPROC)load("glVertexAttrib3d");
  	glad_glVertexAttrib3dv = (PFNGLVERTEXATTRIB3DVPROC)load("glVertexAttrib3dv");
  	glad_glVertexAttrib3f = (PFNGLVERTEXATTRIB3FPROC)load("glVertexAttrib3f");
  	glad_glVertexAttrib3fv = (PFNGLVERTEXATTRIB3FVPROC)load("glVertexAttrib3fv");
  	glad_glVertexAttrib3s = (PFNGLVERTEXATTRIB3SPROC)load("glVertexAttrib3s");
  	glad_glVertexAttrib3sv = (PFNGLVERTEXATTRIB3SVPROC)load("glVertexAttrib3sv");
  	glad_glVertexAttrib4Nbv = (PFNGLVERTEXATTRIB4NBVPROC)load("glVertexAttrib4Nbv");
  	glad_glVertexAttrib4Niv = (PFNGLVERTEXATTRIB4NIVPROC)load("glVertexAttrib4Niv");
  	glad_glVertexAttrib4Nsv = (PFNGLVERTEXATTRIB4NSVPROC)load("glVertexAttrib4Nsv");
  	glad_glVertexAttrib4Nub = (PFNGLVERTEXATTRIB4NUBPROC)load("glVertexAttrib4Nub");
  	glad_glVertexAttrib4Nubv = (PFNGLVERTEXATTRIB4NUBVPROC)load("glVertexAttrib4Nubv");
  	glad_glVertexAttrib4Nuiv = (PFNGLVERTEXATTRIB4NUIVPROC)load("glVertexAttrib4Nuiv");
  	glad_glVertexAttrib4Nusv = (PFNGLVERTEXATTRIB4NUSVPROC)load("glVertexAttrib4Nusv");
  	glad_glVertexAttrib4bv = (PFNGLVERTEXATTRIB4BVPROC)load("glVertexAttrib4bv");
  	glad_glVertexAttrib4d = (PFNGLVERTEXATTRIB4DPROC)load("glVertexAttrib4d");
  	glad_glVertexAttrib4dv = (PFNGLVERTEXATTRIB4DVPROC)load("glVertexAttrib4dv");
  	glad_glVertexAttrib4f = (PFNGLVERTEXATTRIB4FPROC)load("glVertexAttrib4f");
  	glad_glVertexAttrib4fv = (PFNGLVERTEXATTRIB4FVPROC)load("glVertexAttrib4fv");
  	glad_glVertexAttrib4iv = (PFNGLVERTEXATTRIB4IVPROC)load("glVertexAttrib4iv");
  	glad_glVertexAttrib4s = (PFNGLVERTEXATTRIB4SPROC)load("glVertexAttrib4s");
  	glad_glVertexAttrib4sv = (PFNGLVERTEXATTRIB4SVPROC)load("glVertexAttrib4sv");
  	glad_glVertexAttrib4ubv = (PFNGLVERTEXATTRIB4UBVPROC)load("glVertexAttrib4ubv");
  	glad_glVertexAttrib4uiv = (PFNGLVERTEXATTRIB4UIVPROC)load("glVertexAttrib4uiv");
  	glad_glVertexAttrib4usv = (PFNGLVERTEXATTRIB4USVPROC)load("glVertexAttrib4usv");
  	glad_glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC)load("glVertexAttribPointer");
  }
  static void load_GL_VERSION_2_1(GLADloadproc load) {
  	if(!GLAD_GL_VERSION_2_1) return;
  	glad_glUniformMatrix2x3fv = (PFNGLUNIFORMMATRIX2X3FVPROC)load("glUniformMatrix2x3fv");
  	glad_glUniformMatrix3x2fv = (PFNGLUNIFORMMATRIX3X2FVPROC)load("glUniformMatrix3x2fv");
  	glad_glUniformMatrix2x4fv = (PFNGLUNIFORMMATRIX2X4FVPROC)load("glUniformMatrix2x4fv");
  	glad_glUniformMatrix4x2fv = (PFNGLUNIFORMMATRIX4X2FVPROC)load("glUniformMatrix4x2fv");
  	glad_glUniformMatrix3x4fv = (PFNGLUNIFORMMATRIX3X4FVPROC)load("glUniformMatrix3x4fv");
  	glad_glUniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FVPROC)load("glUniformMatrix4x3fv");
  }
  static void load_GL_VERSION_3_0(GLADloadproc load) {
  	if(!GLAD_GL_VERSION_3_0) return;
  	glad_glColorMaski = (PFNGLCOLORMASKIPROC)load("glColorMaski");
  	glad_glGetBooleani_v = (PFNGLGETBOOLEANI_VPROC)load("glGetBooleani_v");
  	glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)load("glGetIntegeri_v");
  	glad_glEnablei = (PFNGLENABLEIPROC)load("glEnablei");
  	glad_glDisablei = (PFNGLDISABLEIPROC)load("glDisablei");
  	glad_glIsEnabledi = (PFNGLISENABLEDIPROC)load("glIsEnabledi");
  	glad_glBeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACKPROC)load("glBeginTransformFeedback");
  	glad_glEndTransformFeedback = (PFNGLENDTRANSFORMFEEDBACKPROC)load("glEndTransformFeedback");
  	glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)load("glBindBufferRange");
  	glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)load("glBindBufferBase");
  	glad_glTransformFeedbackVaryings = (PFNGLTRANSFORMFEEDBACKVARYINGSPROC)load("glTransformFeedbackVaryings");
  	glad_glGetTransformFeedbackVarying = (PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)load("glGetTransformFeedbackVarying");
  	glad_glClampColor = (PFNGLCLAMPCOLORPROC)load("glClampColor");
  	glad_glBeginConditionalRender = (PFNGLBEGINCONDITIONALRENDERPROC)load("glBeginConditionalRender");
  	glad_glEndConditionalRender = (PFNGLENDCONDITIONALRENDERPROC)load("glEndConditionalRender");
  	glad_glVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC)load("glVertexAttribIPointer");
  	glad_glGetVertexAttribIiv = (PFNGLGETVERTEXATTRIBIIVPROC)load("glGetVertexAttribIiv");
  	glad_glGetVertexAttribIuiv = (PFNGLGETVERTEXATTRIBIUIVPROC)load("glGetVertexAttribIuiv");
  	glad_glVertexAttribI1i = (PFNGLVERTEXATTRIBI1IPROC)load("glVertexAttribI1i");
  	glad_glVertexAttribI2i = (PFNGLVERTEXATTRIBI2IPROC)load("glVertexAttribI2i");
  	glad_glVertexAttribI3i = (PFNGLVERTEXATTRIBI3IPROC)load("glVertexAttribI3i");
  	glad_glVertexAttribI4i = (PFNGLVERTEXATTRIBI4IPROC)load("glVertexAttribI4i");
  	glad_glVertexAttribI1ui = (PFNGLVERTEXATTRIBI1UIPROC)load("glVertexAttribI1ui");
  	glad_glVertexAttribI2ui = (PFNGLVERTEXATTRIBI2UIPROC)load("glVertexAttribI2ui");
  	glad_glVertexAttribI3ui = (PFNGLVERTEXATTRIBI3UIPROC)load("glVertexAttribI3ui");
  	glad_glVertexAttribI4ui = (PFNGLVERTEXATTRIBI4UIPROC)load("glVertexAttribI4ui");
  	glad_glVertexAttribI1iv = (PFNGLVERTEXATTRIBI1IVPROC)load("glVertexAttribI1iv");
  	glad_glVertexAttribI2iv = (PFNGLVERTEXATTRIBI2IVPROC)load("glVertexAttribI2iv");
  	glad_glVertexAttribI3iv = (PFNGLVERTEXATTRIBI3IVPROC)load("glVertexAttribI3iv");
  	glad_glVertexAttribI4iv = (PFNGLVERTEXATTRIBI4IVPROC)load("glVertexAttribI4iv");
  	glad_glVertexAttribI1uiv = (PFNGLVERTEXATTRIBI1UIVPROC)load("glVertexAttribI1uiv");
  	glad_glVertexAttribI2uiv = (PFNGLVERTEXATTRIBI2UIVPROC)load("glVertexAttribI2uiv");
  	glad_glVertexAttribI3uiv = (PFNGLVERTEXATTRIBI3UIVPROC)load("glVertexAttribI3uiv");
  	glad_glVertexAttribI4uiv = (PFNGLVERTEXATTRIBI4UIVPROC)load("glVertexAttribI4uiv");
  	glad_glVertexAttribI4bv = (PFNGLVERTEXATTRIBI4BVPROC)load("glVertexAttribI4bv");
  	glad_glVertexAttribI4sv = (PFNGLVERTEXATTRIBI4SVPROC)load("glVertexAttribI4sv");
  	glad_glVertexAttribI4ubv = (PFNGLVERTEXATTRIBI4UBVPROC)load("glVertexAttribI4ubv");
  	glad_glVertexAttribI4usv = (PFNGLVERTEXATTRIBI4USVPROC)load("glVertexAttribI4usv");
  	glad_glGetUniformuiv = (PFNGLGETUNIFORMUIVPROC)load("glGetUniformuiv");
  	glad_glBindFragDataLocation = (PFNGLBINDFRAGDATALOCATIONPROC)load("glBindFragDataLocation");
  	glad_glGetFragDataLocation = (PFNGLGETFRAGDATALOCATIONPROC)load("glGetFragDataLocation");
  	glad_glUniform1ui = (PFNGLUNIFORM1UIPROC)load("glUniform1ui");
  	glad_glUniform2ui = (PFNGLUNIFORM2UIPROC)load("glUniform2ui");
  	glad_glUniform3ui = (PFNGLUNIFORM3UIPROC)load("glUniform3ui");
  	glad_glUniform4ui = (PFNGLUNIFORM4UIPROC)load("glUniform4ui");
  	glad_glUniform1uiv = (PFNGLUNIFORM1UIVPROC)load("glUniform1uiv");
  	glad_glUniform2uiv = (PFNGLUNIFORM2UIVPROC)load("glUniform2uiv");
  	glad_glUniform3uiv = (PFNGLUNIFORM3UIVPROC)load("glUniform3uiv");
  	glad_glUniform4uiv = (PFNGLUNIFORM4UIVPROC)load("glUniform4uiv");
  	glad_glTexParameterIiv = (PFNGLTEXPARAMETERIIVPROC)load("glTexParameterIiv");
  	glad_glTexParameterIuiv = (PFNGLTEXPARAMETERIUIVPROC)load("glTexParameterIuiv");
  	glad_glGetTexParameterIiv = (PFNGLGETTEXPARAMETERIIVPROC)load("glGetTexParameterIiv");
  	glad_glGetTexParameterIuiv = (PFNGLGETTEXPARAMETERIUIVPROC)load("glGetTexParameterIuiv");
  	glad_glClearBufferiv = (PFNGLCLEARBUFFERIVPROC)load("glClearBufferiv");
  	glad_glClearBufferuiv = (PFNGLCLEARBUFFERUIVPROC)load("glClearBufferuiv");
  	glad_glClearBufferfv = (PFNGLCLEARBUFFERFVPROC)load("glClearBufferfv");
  	glad_glClearBufferfi = (PFNGLCLEARBUFFERFIPROC)load("glClearBufferfi");
  	glad_glGetStringi = (PFNGLGETSTRINGIPROC)load("glGetStringi");
  	glad_glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC)load("glIsRenderbuffer");
  	glad_glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC)load("glBindRenderbuffer");
  	glad_glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC)load("glDeleteRenderbuffers");
  	glad_glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC)load("glGenRenderbuffers");
  	glad_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC)load("glRenderbufferStorage");
  	glad_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC)load("glGetRenderbufferParameteriv");
  	glad_glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC)load("glIsFramebuffer");
  	glad_glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC)load("glBindFramebuffer");
  	glad_glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC)load("glDeleteFramebuffers");
  	glad_glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC)load("glGenFramebuffers");
  	glad_glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)load("glCheckFramebufferStatus");
  	glad_glFramebufferTexture1D = (PFNGLFRAMEBUFFERTEXTURE1DPROC)load("glFramebufferTexture1D");
  	glad_glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC)load("glFramebufferTexture2D");
  	glad_glFramebufferTexture3D = (PFNGLFRAMEBUFFERTEXTURE3DPROC)load("glFramebufferTexture3D");
  	glad_glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC)load("glFramebufferRenderbuffer");
  	glad_glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)load("glGetFramebufferAttachmentParameteriv");
  	glad_glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC)load("glGenerateMipmap");
  	glad_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC)load("glBlitFramebuffer");
  	glad_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)load("glRenderbufferStorageMultisample");
  	glad_glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC)load("glFramebufferTextureLayer");
  	glad_glMapBufferRange = (PFNGLMAPBUFFERRANGEPROC)load("glMapBufferRange");
  	glad_glFlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC)load("glFlushMappedBufferRange");
  	glad_glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC)load("glBindVertexArray");
  	glad_glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC)load("glDeleteVertexArrays");
  	glad_glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC)load("glGenVertexArrays");
  	glad_glIsVertexArray = (PFNGLISVERTEXARRAYPROC)load("glIsVertexArray");
  }
  static void load_GL_VERSION_3_1(GLADloadproc load) {
  	if(!GLAD_GL_VERSION_3_1) return;
  	glad_glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC)load("glDrawArraysInstanced");
  	glad_glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC)load("glDrawElementsInstanced");
  	glad_glTexBuffer = (PFNGLTEXBUFFERPROC)load("glTexBuffer");
  	glad_glPrimitiveRestartIndex = (PFNGLPRIMITIVERESTARTINDEXPROC)load("glPrimitiveRestartIndex");
  	glad_glCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC)load("glCopyBufferSubData");
  	glad_glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC)load("glGetUniformIndices");
  	glad_glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC)load("glGetActiveUniformsiv");
  	glad_glGetActiveUniformName = (PFNGLGETACTIVEUNIFORMNAMEPROC)load("glGetActiveUniformName");
  	glad_glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC)load("glGetUniformBlockIndex");
  	glad_glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC)load("glGetActiveUniformBlockiv");
  	glad_glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)load("glGetActiveUniformBlockName");
  	glad_glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC)load("glUniformBlockBinding");
  	glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)load("glBindBufferRange");
  	glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)load("glBindBufferBase");
  	glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)load("glGetIntegeri_v");
  }
  static void load_GL_VERSION_3_2(GLADloadproc load) {
  	if(!GLAD_GL_VERSION_3_2) return;
  	glad_glDrawElementsBaseVertex = (PFNGLDRAWELEMENTSBASEVERTEXPROC)load("glDrawElementsBaseVertex");
  	glad_glDrawRangeElementsBaseVertex = (PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)load("glDrawRangeElementsBaseVertex");
  	glad_glDrawElementsInstancedBaseVertex = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)load("glDrawElementsInstancedBaseVertex");
  	glad_glMultiDrawElementsBaseVertex = (PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)load("glMultiDrawElementsBaseVertex");
  	glad_glProvokingVertex = (PFNGLPROVOKINGVERTEXPROC)load("glProvokingVertex");
  	glad_glFenceSync = (PFNGLFENCESYNCPROC)load("glFenceSync");
  	glad_glIsSync = (PFNGLISSYNCPROC)load("glIsSync");
  	glad_glDeleteSync = (PFNGLDELETESYNCPROC)load("glDeleteSync");
  	glad_glClientWaitSync = (PFNGLCLIENTWAITSYNCPROC)load("glClientWaitSync");
  	glad_glWaitSync = (PFNGLWAITSYNCPROC)load("glWaitSync");
  	glad_glGetInteger64v = (PFNGLGETINTEGER64VPROC)load("glGetInteger64v");
  	glad_glGetSynciv = (PFNGLGETSYNCIVPROC)load("glGetSynciv");
  	glad_glGetInteger64i_v = (PFNGLGETINTEGER64I_VPROC)load("glGetInteger64i_v");
  	glad_glGetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64VPROC)load("glGetBufferParameteri64v");
  	glad_glFramebufferTexture = (PFNGLFRAMEBUFFERTEXTUREPROC)load("glFramebufferTexture");
  	glad_glTexImage2DMultisample = (PFNGLTEXIMAGE2DMULTISAMPLEPROC)load("glTexImage2DMultisample");
  	glad_glTexImage3DMultisample = (PFNGLTEXIMAGE3DMULTISAMPLEPROC)load("glTexImage3DMultisample");
  	glad_glGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC)load("glGetMultisamplefv");
  	glad_glSampleMaski = (PFNGLSAMPLEMASKIPROC)load("glSampleMaski");
  }
  static void load_GL_VERSION_3_3(GLADloadproc load) {
  	if(!GLAD_GL_VERSION_3_3) return;
  	glad_glBindFragDataLocationIndexed = (PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)load("glBindFragDataLocationIndexed");
  	glad_glGetFragDataIndex = (PFNGLGETFRAGDATAINDEXPROC)load("glGetFragDataIndex");
  	glad_glGenSamplers = (PFNGLGENSAMPLERSPROC)load("glGenSamplers");
  	glad_glDeleteSamplers = (PFNGLDELETESAMPLERSPROC)load("glDeleteSamplers");
  	glad_glIsSampler = (PFNGLISSAMPLERPROC)load("glIsSampler");
  	glad_glBindSampler = (PFNGLBINDSAMPLERPROC)load("glBindSampler");
  	glad_glSamplerParameteri = (PFNGLSAMPLERPARAMETERIPROC)load("glSamplerParameteri");
  	glad_glSamplerParameteriv = (PFNGLSAMPLERPARAMETERIVPROC)load("glSamplerParameteriv");
  	glad_glSamplerParameterf = (PFNGLSAMPLERPARAMETERFPROC)load("glSamplerParameterf");
  	glad_glSamplerParameterfv = (PFNGLSAMPLERPARAMETERFVPROC)load("glSamplerParameterfv");
  	glad_glSamplerParameterIiv = (PFNGLSAMPLERPARAMETERIIVPROC)load("glSamplerParameterIiv");
  	glad_glSamplerParameterIuiv = (PFNGLSAMPLERPARAMETERIUIVPROC)load("glSamplerParameterIuiv");
  	glad_glGetSamplerParameteriv = (PFNGLGETSAMPLERPARAMETERIVPROC)load("glGetSamplerParameteriv");
  	glad_glGetSamplerParameterIiv = (PFNGLGETSAMPLERPARAMETERIIVPROC)load("glGetSamplerParameterIiv");
  	glad_glGetSamplerParameterfv = (PFNGLGETSAMPLERPARAMETERFVPROC)load("glGetSamplerParameterfv");
  	glad_glGetSamplerParameterIuiv = (PFNGLGETSAMPLERPARAMETERIUIVPROC)load("glGetSamplerParameterIuiv");
  	glad_glQueryCounter = (PFNGLQUERYCOUNTERPROC)load("glQueryCounter");
  	glad_glGetQueryObjecti64v = (PFNGLGETQUERYOBJECTI64VPROC)load("glGetQueryObjecti64v");
  	glad_glGetQueryObjectui64v = (PFNGLGETQUERYOBJECTUI64VPROC)load("glGetQueryObjectui64v");
  	glad_glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC)load("glVertexAttribDivisor");
  	glad_glVertexAttribP1ui = (PFNGLVERTEXATTRIBP1UIPROC)load("glVertexAttribP1ui");
  	glad_glVertexAttribP1uiv = (PFNGLVERTEXATTRIBP1UIVPROC)load("glVertexAttribP1uiv");
  	glad_glVertexAttribP2ui = (PFNGLVERTEXATTRIBP2UIPROC)load("glVertexAttribP2ui");
  	glad_glVertexAttribP2uiv = (PFNGLVERTEXATTRIBP2UIVPROC)load("glVertexAttribP2uiv");
  	glad_glVertexAttribP3ui = (PFNGLVERTEXATTRIBP3UIPROC)load("glVertexAttribP3ui");
  	glad_glVertexAttribP3uiv = (PFNGLVERTEXATTRIBP3UIVPROC)load("glVertexAttribP3uiv");
  	glad_glVertexAttribP4ui = (PFNGLVERTEXATTRIBP4UIPROC)load("glVertexAttribP4ui");
  	glad_glVertexAttribP4uiv = (PFNGLVERTEXATTRIBP4UIVPROC)load("glVertexAttribP4uiv");
  	glad_glVertexP2ui = (PFNGLVERTEXP2UIPROC)load("glVertexP2ui");
  	glad_glVertexP2uiv = (PFNGLVERTEXP2UIVPROC)load("glVertexP2uiv");
  	glad_glVertexP3ui = (PFNGLVERTEXP3UIPROC)load("glVertexP3ui");
  	glad_glVertexP3uiv = (PFNGLVERTEXP3UIVPROC)load("glVertexP3uiv");
  	glad_glVertexP4ui = (PFNGLVERTEXP4UIPROC)load("glVertexP4ui");
  	glad_glVertexP4uiv = (PFNGLVERTEXP4UIVPROC)load("glVertexP4uiv");
  	glad_glTexCoordP1ui = (PFNGLTEXCOORDP1UIPROC)load("glTexCoordP1ui");
  	glad_glTexCoordP1uiv = (PFNGLTEXCOORDP1UIVPROC)load("glTexCoordP1uiv");
  	glad_glTexCoordP2ui = (PFNGLTEXCOORDP2UIPROC)load("glTexCoordP2ui");
  	glad_glTexCoordP2uiv = (PFNGLTEXCOORDP2UIVPROC)load("glTexCoordP2uiv");
  	glad_glTexCoordP3ui = (PFNGLTEXCOORDP3UIPROC)load("glTexCoordP3ui");
  	glad_glTexCoordP3uiv = (PFNGLTEXCOORDP3UIVPROC)load("glTexCoordP3uiv");
  	glad_glTexCoordP4ui = (PFNGLTEXCOORDP4UIPROC)load("glTexCoordP4ui");
  	glad_glTexCoordP4uiv = (PFNGLTEXCOORDP4UIVPROC)load("glTexCoordP4uiv");
  	glad_glMultiTexCoordP1ui = (PFNGLMULTITEXCOORDP1UIPROC)load("glMultiTexCoordP1ui");
  	glad_glMultiTexCoordP1uiv = (PFNGLMULTITEXCOORDP1UIVPROC)load("glMultiTexCoordP1uiv");
  	glad_glMultiTexCoordP2ui = (PFNGLMULTITEXCOORDP2UIPROC)load("glMultiTexCoordP2ui");
  	glad_glMultiTexCoordP2uiv = (PFNGLMULTITEXCOORDP2UIVPROC)load("glMultiTexCoordP2uiv");
  	glad_glMultiTexCoordP3ui = (PFNGLMULTITEXCOORDP3UIPROC)load("glMultiTexCoordP3ui");
  	glad_glMultiTexCoordP3uiv = (PFNGLMULTITEXCOORDP3UIVPROC)load("glMultiTexCoordP3uiv");
  	glad_glMultiTexCoordP4ui = (PFNGLMULTITEXCOORDP4UIPROC)load("glMultiTexCoordP4ui");
  	glad_glMultiTexCoordP4uiv = (PFNGLMULTITEXCOORDP4UIVPROC)load("glMultiTexCoordP4uiv");
  	glad_glNormalP3ui = (PFNGLNORMALP3UIPROC)load("glNormalP3ui");
  	glad_glNormalP3uiv = (PFNGLNORMALP3UIVPROC)load("glNormalP3uiv");
  	glad_glColorP3ui = (PFNGLCOLORP3UIPROC)load("glColorP3ui");
  	glad_glColorP3uiv = (PFNGLCOLORP3UIVPROC)load("glColorP3uiv");
  	glad_glColorP4ui = (PFNGLCOLORP4UIPROC)load("glColorP4ui");
  	glad_glColorP4uiv = (PFNGLCOLORP4UIVPROC)load("glColorP4uiv");
  	glad_glSecondaryColorP3ui = (PFNGLSECONDARYCOLORP3UIPROC)load("glSecondaryColorP3ui");
  	glad_glSecondaryColorP3uiv = (PFNGLSECONDARYCOLORP3UIVPROC)load("glSecondaryColorP3uiv");
  }
  static void load_GL_VERSION_4_0(GLADloadproc load) {
  	if(!GLAD_GL_VERSION_4_0) return;
  	glad_glMinSampleShading = (PFNGLMINSAMPLESHADINGPROC)load("glMinSampleShading");
  	glad_glBlendEquationi = (PFNGLBLENDEQUATIONIPROC)load("glBlendEquationi");
  	glad_glBlendEquationSeparatei = (PFNGLBLENDEQUATIONSEPARATEIPROC)load("glBlendEquationSeparatei");
  	glad_glBlendFunci = (PFNGLBLENDFUNCIPROC)load("glBlendFunci");
  	glad_glBlendFuncSeparatei = (PFNGLBLENDFUNCSEPARATEIPROC)load("glBlendFuncSeparatei");
  	glad_glDrawArraysIndirect = (PFNGLDRAWARRAYSINDIRECTPROC)load("glDrawArraysIndirect");
  	glad_glDrawElementsIndirect = (PFNGLDRAWELEMENTSINDIRECTPROC)load("glDrawElementsIndirect");
  	glad_glUniform1d = (PFNGLUNIFORM1DPROC)load("glUniform1d");
  	glad_glUniform2d = (PFNGLUNIFORM2DPROC)load("glUniform2d");
  	glad_glUniform3d = (PFNGLUNIFORM3DPROC)load("glUniform3d");
  	glad_glUniform4d = (PFNGLUNIFORM4DPROC)load("glUniform4d");
  	glad_glUniform1dv = (PFNGLUNIFORM1DVPROC)load("glUniform1dv");
  	glad_glUniform2dv = (PFNGLUNIFORM2DVPROC)load("glUniform2dv");
  	glad_glUniform3dv = (PFNGLUNIFORM3DVPROC)load("glUniform3dv");
  	glad_glUniform4dv = (PFNGLUNIFORM4DVPROC)load("glUniform4dv");
  	glad_glUniformMatrix2dv = (PFNGLUNIFORMMATRIX2DVPROC)load("glUniformMatrix2dv");
  	glad_glUniformMatrix3dv = (PFNGLUNIFORMMATRIX3DVPROC)load("glUniformMatrix3dv");
  	glad_glUniformMatrix4dv = (PFNGLUNIFORMMATRIX4DVPROC)load("glUniformMatrix4dv");
  	glad_glUniformMatrix2x3dv = (PFNGLUNIFORMMATRIX2X3DVPROC)load("glUniformMatrix2x3dv");
  	glad_glUniformMatrix2x4dv = (PFNGLUNIFORMMATRIX2X4DVPROC)load("glUniformMatrix2x4dv");
  	glad_glUniformMatrix3x2dv = (PFNGLUNIFORMMATRIX3X2DVPROC)load("glUniformMatrix3x2dv");
  	glad_glUniformMatrix3x4dv = (PFNGLUNIFORMMATRIX3X4DVPROC)load("glUniformMatrix3x4dv");
  	glad_glUniformMatrix4x2dv = (PFNGLUNIFORMMATRIX4X2DVPROC)load("glUniformMatrix4x2dv");
  	glad_glUniformMatrix4x3dv = (PFNGLUNIFORMMATRIX4X3DVPROC)load("glUniformMatrix4x3dv");
  	glad_glGetUniformdv = (PFNGLGETUNIFORMDVPROC)load("glGetUniformdv");
  	glad_glGetSubroutineUniformLocation = (PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC)load("glGetSubroutineUniformLocation");
  	glad_glGetSubroutineIndex = (PFNGLGETSUBROUTINEINDEXPROC)load("glGetSubroutineIndex");
  	glad_glGetActiveSubroutineUniformiv = (PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC)load("glGetActiveSubroutineUniformiv");
  	glad_glGetActiveSubroutineUniformName = (PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC)load("glGetActiveSubroutineUniformName");
  	glad_glGetActiveSubroutineName = (PFNGLGETACTIVESUBROUTINENAMEPROC)load("glGetActiveSubroutineName");
  	glad_glUniformSubroutinesuiv = (PFNGLUNIFORMSUBROUTINESUIVPROC)load("glUniformSubroutinesuiv");
  	glad_glGetUniformSubroutineuiv = (PFNGLGETUNIFORMSUBROUTINEUIVPROC)load("glGetUniformSubroutineuiv");
  	glad_glGetProgramStageiv = (PFNGLGETPROGRAMSTAGEIVPROC)load("glGetProgramStageiv");
  	glad_glPatchParameteri = (PFNGLPATCHPARAMETERIPROC)load("glPatchParameteri");
  	glad_glPatchParameterfv = (PFNGLPATCHPARAMETERFVPROC)load("glPatchParameterfv");
  	glad_glBindTransformFeedback = (PFNGLBINDTRANSFORMFEEDBACKPROC)load("glBindTransformFeedback");
  	glad_glDeleteTransformFeedbacks = (PFNGLDELETETRANSFORMFEEDBACKSPROC)load("glDeleteTransformFeedbacks");
  	glad_glGenTransformFeedbacks = (PFNGLGENTRANSFORMFEEDBACKSPROC)load("glGenTransformFeedbacks");
  	glad_glIsTransformFeedback = (PFNGLISTRANSFORMFEEDBACKPROC)load("glIsTransformFeedback");
  	glad_glPauseTransformFeedback = (PFNGLPAUSETRANSFORMFEEDBACKPROC)load("glPauseTransformFeedback");
  	glad_glResumeTransformFeedback = (PFNGLRESUMETRANSFORMFEEDBACKPROC)load("glResumeTransformFeedback");
  	glad_glDrawTransformFeedback = (PFNGLDRAWTRANSFORMFEEDBACKPROC)load("glDrawTransformFeedback");
  	glad_glDrawTransformFeedbackStream = (PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC)load("glDrawTransformFeedbackStream");
  	glad_glBeginQueryIndexed = (PFNGLBEGINQUERYINDEXEDPROC)load("glBeginQueryIndexed");
  	glad_glEndQueryIndexed = (PFNGLENDQUERYINDEXEDPROC)load("glEndQueryIndexed");
  	glad_glGetQueryIndexediv = (PFNGLGETQUERYINDEXEDIVPROC)load("glGetQueryIndexediv");
  }
  static void load_GL_VERSION_4_1(GLADloadproc load) {
  	if(!GLAD_GL_VERSION_4_1) return;
  	glad_glReleaseShaderCompiler = (PFNGLRELEASESHADERCOMPILERPROC)load("glReleaseShaderCompiler");
  	glad_glShaderBinary = (PFNGLSHADERBINARYPROC)load("glShaderBinary");
  	glad_glGetShaderPrecisionFormat = (PFNGLGETSHADERPRECISIONFORMATPROC)load("glGetShaderPrecisionFormat");
  	glad_glDepthRangef = (PFNGLDEPTHRANGEFPROC)load("glDepthRangef");
  	glad_glClearDepthf = (PFNGLCLEARDEPTHFPROC)load("glClearDepthf");
  	glad_glGetProgramBinary = (PFNGLGETPROGRAMBINARYPROC)load("glGetProgramBinary");
  	glad_glProgramBinary = (PFNGLPROGRAMBINARYPROC)load("glProgramBinary");
  	glad_glProgramParameteri = (PFNGLPROGRAMPARAMETERIPROC)load("glProgramParameteri");
  	glad_glUseProgramStages = (PFNGLUSEPROGRAMSTAGESPROC)load("glUseProgramStages");
  	glad_glActiveShaderProgram = (PFNGLACTIVESHADERPROGRAMPROC)load("glActiveShaderProgram");
  	glad_glCreateShaderProgramv = (PFNGLCREATESHADERPROGRAMVPROC)load("glCreateShaderProgramv");
  	glad_glBindProgramPipeline = (PFNGLBINDPROGRAMPIPELINEPROC)load("glBindProgramPipeline");
  	glad_glDeleteProgramPipelines = (PFNGLDELETEPROGRAMPIPELINESPROC)load("glDeleteProgramPipelines");
  	glad_glGenProgramPipelines = (PFNGLGENPROGRAMPIPELINESPROC)load("glGenProgramPipelines");
  	glad_glIsProgramPipeline = (PFNGLISPROGRAMPIPELINEPROC)load("glIsProgramPipeline");
  	glad_glGetProgramPipelineiv = (PFNGLGETPROGRAMPIPELINEIVPROC)load("glGetProgramPipelineiv");
  	glad_glProgramParameteri = (PFNGLPROGRAMPARAMETERIPROC)load("glProgramParameteri");
  	glad_glProgramUniform1i = (PFNGLPROGRAMUNIFORM1IPROC)load("glProgramUniform1i");
  	glad_glProgramUniform1iv = (PFNGLPROGRAMUNIFORM1IVPROC)load("glProgramUniform1iv");
  	glad_glProgramUniform1f = (PFNGLPROGRAMUNIFORM1FPROC)load("glProgramUniform1f");
  	glad_glProgramUniform1fv = (PFNGLPROGRAMUNIFORM1FVPROC)load("glProgramUniform1fv");
  	glad_glProgramUniform1d = (PFNGLPROGRAMUNIFORM1DPROC)load("glProgramUniform1d");
  	glad_glProgramUniform1dv = (PFNGLPROGRAMUNIFORM1DVPROC)load("glProgramUniform1dv");
  	glad_glProgramUniform1ui = (PFNGLPROGRAMUNIFORM1UIPROC)load("glProgramUniform1ui");
  	glad_glProgramUniform1uiv = (PFNGLPROGRAMUNIFORM1UIVPROC)load("glProgramUniform1uiv");
  	glad_glProgramUniform2i = (PFNGLPROGRAMUNIFORM2IPROC)load("glProgramUniform2i");
  	glad_glProgramUniform2iv = (PFNGLPROGRAMUNIFORM2IVPROC)load("glProgramUniform2iv");
  	glad_glProgramUniform2f = (PFNGLPROGRAMUNIFORM2FPROC)load("glProgramUniform2f");
  	glad_glProgramUniform2fv = (PFNGLPROGRAMUNIFORM2FVPROC)load("glProgramUniform2fv");
  	glad_glProgramUniform2d = (PFNGLPROGRAMUNIFORM2DPROC)load("glProgramUniform2d");
  	glad_glProgramUniform2dv = (PFNGLPROGRAMUNIFORM2DVPROC)load("glProgramUniform2dv");
  	glad_glProgramUniform2ui = (PFNGLPROGRAMUNIFORM2UIPROC)load("glProgramUniform2ui");
  	glad_glProgramUniform2uiv = (PFNGLPROGRAMUNIFORM2UIVPROC)load("glProgramUniform2uiv");
  	glad_glProgramUniform3i = (PFNGLPROGRAMUNIFORM3IPROC)load("glProgramUniform3i");
  	glad_glProgramUniform3iv = (PFNGLPROGRAMUNIFORM3IVPROC)load("glProgramUniform3iv");
  	glad_glProgramUniform3f = (PFNGLPROGRAMUNIFORM3FPROC)load("glProgramUniform3f");
  	glad_glProgramUniform3fv = (PFNGLPROGRAMUNIFORM3FVPROC)load("glProgramUniform3fv");
  	glad_glProgramUniform3d = (PFNGLPROGRAMUNIFORM3DPROC)load("glProgramUniform3d");
  	glad_glProgramUniform3dv = (PFNGLPROGRAMUNIFORM3DVPROC)load("glProgramUniform3dv");
  	glad_glProgramUniform3ui = (PFNGLPROGRAMUNIFORM3UIPROC)load("glProgramUniform3ui");
  	glad_glProgramUniform3uiv = (PFNGLPROGRAMUNIFORM3UIVPROC)load("glProgramUniform3uiv");
  	glad_glProgramUniform4i = (PFNGLPROGRAMUNIFORM4IPROC)load("glProgramUniform4i");
  	glad_glProgramUniform4iv = (PFNGLPROGRAMUNIFORM4IVPROC)load("glProgramUniform4iv");
  	glad_glProgramUniform4f = (PFNGLPROGRAMUNIFORM4FPROC)load("glProgramUniform4f");
  	glad_glProgramUniform4fv = (PFNGLPROGRAMUNIFORM4FVPROC)load("glProgramUniform4fv");
  	glad_glProgramUniform4d = (PFNGLPROGRAMUNIFORM4DPROC)load("glProgramUniform4d");
  	glad_glProgramUniform4dv = (PFNGLPROGRAMUNIFORM4DVPROC)load("glProgramUniform4dv");
  	glad_glProgramUniform4ui = (PFNGLPROGRAMUNIFORM4UIPROC)load("glProgramUniform4ui");
  	glad_glProgramUniform4uiv = (PFNGLPROGRAMUNIFORM4UIVPROC)load("glProgramUniform4uiv");
  	glad_glProgramUniformMatrix2fv = (PFNGLPROGRAMUNIFORMMATRIX2FVPROC)load("glProgramUniformMatrix2fv");
  	glad_glProgramUniformMatrix3fv = (PFNGLPROGRAMUNIFORMMATRIX3FVPROC)load("glProgramUniformMatrix3fv");
  	glad_glProgramUniformMatrix4fv = (PFNGLPROGRAMUNIFORMMATRIX4FVPROC)load("glProgramUniformMatrix4fv");
  	glad_glProgramUniformMatrix2dv = (PFNGLPROGRAMUNIFORMMATRIX2DVPROC)load("glProgramUniformMatrix2dv");
  	glad_glProgramUniformMatrix3dv = (PFNGLPROGRAMUNIFORMMATRIX3DVPROC)load("glProgramUniformMatrix3dv");
  	glad_glProgramUniformMatrix4dv = (PFNGLPROGRAMUNIFORMMATRIX4DVPROC)load("glProgramUniformMatrix4dv");
  	glad_glProgramUniformMatrix2x3fv = (PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC)load("glProgramUniformMatrix2x3fv");
  	glad_glProgramUniformMatrix3x2fv = (PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC)load("glProgramUniformMatrix3x2fv");
  	glad_glProgramUniformMatrix2x4fv = (PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC)load("glProgramUniformMatrix2x4fv");
  	glad_glProgramUniformMatrix4x2fv = (PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC)load("glProgramUniformMatrix4x2fv");
  	glad_glProgramUniformMatrix3x4fv = (PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC)load("glProgramUniformMatrix3x4fv");
  	glad_glProgramUniformMatrix4x3fv = (PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC)load("glProgramUniformMatrix4x3fv");
  	glad_glProgramUniformMatrix2x3dv = (PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC)load("glProgramUniformMatrix2x3dv");
  	glad_glProgramUniformMatrix3x2dv = (PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC)load("glProgramUniformMatrix3x2dv");
  	glad_glProgramUniformMatrix2x4dv = (PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC)load("glProgramUniformMatrix2x4dv");
  	glad_glProgramUniformMatrix4x2dv = (PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC)load("glProgramUniformMatrix4x2dv");
  	glad_glProgramUniformMatrix3x4dv = (PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC)load("glProgramUniformMatrix3x4dv");
  	glad_glProgramUniformMatrix4x3dv = (PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC)load("glProgramUniformMatrix4x3dv");
  	glad_glValidateProgramPipeline = (PFNGLVALIDATEPROGRAMPIPELINEPROC)load("glValidateProgramPipeline");
  	glad_glGetProgramPipelineInfoLog = (PFNGLGETPROGRAMPIPELINEINFOLOGPROC)load("glGetProgramPipelineInfoLog");
  	glad_glVertexAttribL1d = (PFNGLVERTEXATTRIBL1DPROC)load("glVertexAttribL1d");
  	glad_glVertexAttribL2d = (PFNGLVERTEXATTRIBL2DPROC)load("glVertexAttribL2d");
  	glad_glVertexAttribL3d = (PFNGLVERTEXATTRIBL3DPROC)load("glVertexAttribL3d");
  	glad_glVertexAttribL4d = (PFNGLVERTEXATTRIBL4DPROC)load("glVertexAttribL4d");
  	glad_glVertexAttribL1dv = (PFNGLVERTEXATTRIBL1DVPROC)load("glVertexAttribL1dv");
  	glad_glVertexAttribL2dv = (PFNGLVERTEXATTRIBL2DVPROC)load("glVertexAttribL2dv");
  	glad_glVertexAttribL3dv = (PFNGLVERTEXATTRIBL3DVPROC)load("glVertexAttribL3dv");
  	glad_glVertexAttribL4dv = (PFNGLVERTEXATTRIBL4DVPROC)load("glVertexAttribL4dv");
  	glad_glVertexAttribLPointer = (PFNGLVERTEXATTRIBLPOINTERPROC)load("glVertexAttribLPointer");
  	glad_glGetVertexAttribLdv = (PFNGLGETVERTEXATTRIBLDVPROC)load("glGetVertexAttribLdv");
  	glad_glViewportArrayv = (PFNGLVIEWPORTARRAYVPROC)load("glViewportArrayv");
  	glad_glViewportIndexedf = (PFNGLVIEWPORTINDEXEDFPROC)load("glViewportIndexedf");
  	glad_glViewportIndexedfv = (PFNGLVIEWPORTINDEXEDFVPROC)load("glViewportIndexedfv");
  	glad_glScissorArrayv = (PFNGLSCISSORARRAYVPROC)load("glScissorArrayv");
  	glad_glScissorIndexed = (PFNGLSCISSORINDEXEDPROC)load("glScissorIndexed");
  	glad_glScissorIndexedv = (PFNGLSCISSORINDEXEDVPROC)load("glScissorIndexedv");
  	glad_glDepthRangeArrayv = (PFNGLDEPTHRANGEARRAYVPROC)load("glDepthRangeArrayv");
  	glad_glDepthRangeIndexed = (PFNGLDEPTHRANGEINDEXEDPROC)load("glDepthRangeIndexed");
  	glad_glGetFloati_v = (PFNGLGETFLOATI_VPROC)load("glGetFloati_v");
  	glad_glGetDoublei_v = (PFNGLGETDOUBLEI_VPROC)load("glGetDoublei_v");
  }
  static void load_GL_VERSION_4_2(GLADloadproc load) {
  	if(!GLAD_GL_VERSION_4_2) return;
  	glad_glDrawArraysInstancedBaseInstance = (PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC)load("glDrawArraysInstancedBaseInstance");
  	glad_glDrawElementsInstancedBaseInstance = (PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC)load("glDrawElementsInstancedBaseInstance");
  	glad_glDrawElementsInstancedBaseVertexBaseInstance = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC)load("glDrawElementsInstancedBaseVertexBaseInstance");
  	glad_glGetInternalformativ = (PFNGLGETINTERNALFORMATIVPROC)load("glGetInternalformativ");
  	glad_glGetActiveAtomicCounterBufferiv = (PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC)load("glGetActiveAtomicCounterBufferiv");
  	glad_glBindImageTexture = (PFNGLBINDIMAGETEXTUREPROC)load("glBindImageTexture");
  	glad_glMemoryBarrier = (PFNGLMEMORYBARRIERPROC)load("glMemoryBarrier");
  	glad_glTexStorage1D = (PFNGLTEXSTORAGE1DPROC)load("glTexStorage1D");
  	glad_glTexStorage2D = (PFNGLTEXSTORAGE2DPROC)load("glTexStorage2D");
  	glad_glTexStorage3D = (PFNGLTEXSTORAGE3DPROC)load("glTexStorage3D");
  	glad_glDrawTransformFeedbackInstanced = (PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC)load("glDrawTransformFeedbackInstanced");
  	glad_glDrawTransformFeedbackStreamInstanced = (PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC)load("glDrawTransformFeedbackStreamInstanced");
  }
  static void load_GL_VERSION_4_3(GLADloadproc load) {
  	if(!GLAD_GL_VERSION_4_3) return;
  	glad_glClearBufferData = (PFNGLCLEARBUFFERDATAPROC)load("glClearBufferData");
  	glad_glClearBufferSubData = (PFNGLCLEARBUFFERSUBDATAPROC)load("glClearBufferSubData");
  	glad_glDispatchCompute = (PFNGLDISPATCHCOMPUTEPROC)load("glDispatchCompute");
  	glad_glDispatchComputeIndirect = (PFNGLDISPATCHCOMPUTEINDIRECTPROC)load("glDispatchComputeIndirect");
  	glad_glCopyImageSubData = (PFNGLCOPYIMAGESUBDATAPROC)load("glCopyImageSubData");
  	glad_glFramebufferParameteri = (PFNGLFRAMEBUFFERPARAMETERIPROC)load("glFramebufferParameteri");
  	glad_glGetFramebufferParameteriv = (PFNGLGETFRAMEBUFFERPARAMETERIVPROC)load("glGetFramebufferParameteriv");
  	glad_glGetInternalformati64v = (PFNGLGETINTERNALFORMATI64VPROC)load("glGetInternalformati64v");
  	glad_glInvalidateTexSubImage = (PFNGLINVALIDATETEXSUBIMAGEPROC)load("glInvalidateTexSubImage");
  	glad_glInvalidateTexImage = (PFNGLINVALIDATETEXIMAGEPROC)load("glInvalidateTexImage");
  	glad_glInvalidateBufferSubData = (PFNGLINVALIDATEBUFFERSUBDATAPROC)load("glInvalidateBufferSubData");
  	glad_glInvalidateBufferData = (PFNGLINVALIDATEBUFFERDATAPROC)load("glInvalidateBufferData");
  	glad_glInvalidateFramebuffer = (PFNGLINVALIDATEFRAMEBUFFERPROC)load("glInvalidateFramebuffer");
  	glad_glInvalidateSubFramebuffer = (PFNGLINVALIDATESUBFRAMEBUFFERPROC)load("glInvalidateSubFramebuffer");
  	glad_glMultiDrawArraysIndirect = (PFNGLMULTIDRAWARRAYSINDIRECTPROC)load("glMultiDrawArraysIndirect");
  	glad_glMultiDrawElementsIndirect = (PFNGLMULTIDRAWELEMENTSINDIRECTPROC)load("glMultiDrawElementsIndirect");
  	glad_glGetProgramInterfaceiv = (PFNGLGETPROGRAMINTERFACEIVPROC)load("glGetProgramInterfaceiv");
  	glad_glGetProgramResourceIndex = (PFNGLGETPROGRAMRESOURCEINDEXPROC)load("glGetProgramResourceIndex");
  	glad_glGetProgramResourceName = (PFNGLGETPROGRAMRESOURCENAMEPROC)load("glGetProgramResourceName");
  	glad_glGetProgramResourceiv = (PFNGLGETPROGRAMRESOURCEIVPROC)load("glGetProgramResourceiv");
  	glad_glGetProgramResourceLocation = (PFNGLGETPROGRAMRESOURCELOCATIONPROC)load("glGetProgramResourceLocation");
  	glad_glGetProgramResourceLocationIndex = (PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC)load("glGetProgramResourceLocationIndex");
  	glad_glShaderStorageBlockBinding = (PFNGLSHADERSTORAGEBLOCKBINDINGPROC)load("glShaderStorageBlockBinding");
  	glad_glTexBufferRange = (PFNGLTEXBUFFERRANGEPROC)load("glTexBufferRange");
  	glad_glTexStorage2DMultisample = (PFNGLTEXSTORAGE2DMULTISAMPLEPROC)load("glTexStorage2DMultisample");
  	glad_glTexStorage3DMultisample = (PFNGLTEXSTORAGE3DMULTISAMPLEPROC)load("glTexStorage3DMultisample");
  	glad_glTextureView = (PFNGLTEXTUREVIEWPROC)load("glTextureView");
  	glad_glBindVertexBuffer = (PFNGLBINDVERTEXBUFFERPROC)load("glBindVertexBuffer");
  	glad_glVertexAttribFormat = (PFNGLVERTEXATTRIBFORMATPROC)load("glVertexAttribFormat");
  	glad_glVertexAttribIFormat = (PFNGLVERTEXATTRIBIFORMATPROC)load("glVertexAttribIFormat");
  	glad_glVertexAttribLFormat = (PFNGLVERTEXATTRIBLFORMATPROC)load("glVertexAttribLFormat");
  	glad_glVertexAttribBinding = (PFNGLVERTEXATTRIBBINDINGPROC)load("glVertexAttribBinding");
  	glad_glVertexBindingDivisor = (PFNGLVERTEXBINDINGDIVISORPROC)load("glVertexBindingDivisor");
  	glad_glDebugMessageControl = (PFNGLDEBUGMESSAGECONTROLPROC)load("glDebugMessageControl");
  	glad_glDebugMessageInsert = (PFNGLDEBUGMESSAGEINSERTPROC)load("glDebugMessageInsert");
  	glad_glDebugMessageCallback = (PFNGLDEBUGMESSAGECALLBACKPROC)load("glDebugMessageCallback");
  	glad_glGetDebugMessageLog = (PFNGLGETDEBUGMESSAGELOGPROC)load("glGetDebugMessageLog");
  	glad_glPushDebugGroup = (PFNGLPUSHDEBUGGROUPPROC)load("glPushDebugGroup");
  	glad_glPopDebugGroup = (PFNGLPOPDEBUGGROUPPROC)load("glPopDebugGroup");
  	glad_glObjectLabel = (PFNGLOBJECTLABELPROC)load("glObjectLabel");
  	glad_glGetObjectLabel = (PFNGLGETOBJECTLABELPROC)load("glGetObjectLabel");
  	glad_glObjectPtrLabel = (PFNGLOBJECTPTRLABELPROC)load("glObjectPtrLabel");
  	glad_glGetObjectPtrLabel = (PFNGLGETOBJECTPTRLABELPROC)load("glGetObjectPtrLabel");
  	glad_glGetPointerv = (PFNGLGETPOINTERVPROC)load("glGetPointerv");
  }
  static int find_extensionsGL(void) {
  	if (!get_exts()) return 0;
  	(void)&has_ext;
  	free_exts();
  	return 1;
  }
  
  static void find_coreGL(void) {
  
      /* Thank you @elmindreda
       * https://github.com/elmindreda/greg/blob/master/templates/greg.c.in#L176
       * https://github.com/glfw/glfw/blob/master/src/context.c#L36
       */
      int i, major, minor;
  
      const char* version;
      const char* prefixes[] = {
          "OpenGL ES-CM ",
          "OpenGL ES-CL ",
          "OpenGL ES ",
          NULL
      };
  
      version = (const char*) glGetString(GL_VERSION);
      if (!version) return;
  
      for (i = 0;  prefixes[i];  i++) {
          const size_t length = strlen(prefixes[i]);
          if (strncmp(version, prefixes[i], length) == 0) {
              version += length;
              break;
          }
      }
  
  /* PR #18 */
  #ifdef _MSC_VER
      sscanf_s(version, "%d.%d", &major, &minor);
  #else
      sscanf(version, "%d.%d", &major, &minor);
  #endif
  
      GLVersion.major = major; GLVersion.minor = minor;
      max_loaded_major = major; max_loaded_minor = minor;
  	GLAD_GL_VERSION_1_0 = (major == 1 && minor >= 0) || major > 1;
  	GLAD_GL_VERSION_1_1 = (major == 1 && minor >= 1) || major > 1;
  	GLAD_GL_VERSION_1_2 = (major == 1 && minor >= 2) || major > 1;
  	GLAD_GL_VERSION_1_3 = (major == 1 && minor >= 3) || major > 1;
  	GLAD_GL_VERSION_1_4 = (major == 1 && minor >= 4) || major > 1;
  	GLAD_GL_VERSION_1_5 = (major == 1 && minor >= 5) || major > 1;
  	GLAD_GL_VERSION_2_0 = (major == 2 && minor >= 0) || major > 2;
  	GLAD_GL_VERSION_2_1 = (major == 2 && minor >= 1) || major > 2;
  	GLAD_GL_VERSION_3_0 = (major == 3 && minor >= 0) || major > 3;
  	GLAD_GL_VERSION_3_1 = (major == 3 && minor >= 1) || major > 3;
  	GLAD_GL_VERSION_3_2 = (major == 3 && minor >= 2) || major > 3;
  	GLAD_GL_VERSION_3_3 = (major == 3 && minor >= 3) || major > 3;
  	GLAD_GL_VERSION_4_0 = (major == 4 && minor >= 0) || major > 4;
  	GLAD_GL_VERSION_4_1 = (major == 4 && minor >= 1) || major > 4;
  	GLAD_GL_VERSION_4_2 = (major == 4 && minor >= 2) || major > 4;
  	GLAD_GL_VERSION_4_3 = (major == 4 && minor >= 3) || major > 4;
  	if (GLVersion.major > 4 || (GLVersion.major >= 4 && GLVersion.minor >= 3)) {
  		max_loaded_major = 4;
  		max_loaded_minor = 3;
  	}
  }
  
  int gladLoadGLLoader(GLADloadproc load) {
  	GLVersion.major = 0; GLVersion.minor = 0;
  	glGetString = (PFNGLGETSTRINGPROC)load("glGetString");
  	if(glGetString == NULL) return 0;
  	if(glGetString(GL_VERSION) == NULL) return 0;
  	find_coreGL();
  	load_GL_VERSION_1_0(load);
  	load_GL_VERSION_1_1(load);
  	load_GL_VERSION_1_2(load);
  	load_GL_VERSION_1_3(load);
  	load_GL_VERSION_1_4(load);
  	load_GL_VERSION_1_5(load);
  	load_GL_VERSION_2_0(load);
  	load_GL_VERSION_2_1(load);
  	load_GL_VERSION_3_0(load);
  	load_GL_VERSION_3_1(load);
  	load_GL_VERSION_3_2(load);
  	load_GL_VERSION_3_3(load);
  	load_GL_VERSION_4_0(load);
  	load_GL_VERSION_4_1(load);
  	load_GL_VERSION_4_2(load);
  	load_GL_VERSION_4_3(load);
  
  	if (!find_extensionsGL()) return 0;
  	return GLVersion.major != 0 || GLVersion.minor != 0;
  }
  
  static void load_GL_ES_VERSION_2_0(GLADloadproc load) {
  	if(!GLAD_GL_ES_VERSION_2_0) return;
  	glad_glActiveTexture = (PFNGLACTIVETEXTUREPROC)load("glActiveTexture");
  	glad_glAttachShader = (PFNGLATTACHSHADERPROC)load("glAttachShader");
  	glad_glBindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC)load("glBindAttribLocation");
  	glad_glBindBuffer = (PFNGLBINDBUFFERPROC)load("glBindBuffer");
  	glad_glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC)load("glBindFramebuffer");
  	glad_glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC)load("glBindRenderbuffer");
  	glad_glBindTexture = (PFNGLBINDTEXTUREPROC)load("glBindTexture");
  	glad_glBlendColor = (PFNGLBLENDCOLORPROC)load("glBlendColor");
  	glad_glBlendEquation = (PFNGLBLENDEQUATIONPROC)load("glBlendEquation");
  	glad_glBlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC)load("glBlendEquationSeparate");
  	glad_glBlendFunc = (PFNGLBLENDFUNCPROC)load("glBlendFunc");
  	glad_glBlendFuncSeparate = (PFNGLBLENDFUNCSEPARATEPROC)load("glBlendFuncSeparate");
  	glad_glBufferData = (PFNGLBUFFERDATAPROC)load("glBufferData");
  	glad_glBufferSubData = (PFNGLBUFFERSUBDATAPROC)load("glBufferSubData");
  	glad_glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)load("glCheckFramebufferStatus");
  	glad_glClear = (PFNGLCLEARPROC)load("glClear");
  	glad_glClearColor = (PFNGLCLEARCOLORPROC)load("glClearColor");
  	glad_glClearDepthf = (PFNGLCLEARDEPTHFPROC)load("glClearDepthf");
  	glad_glClearStencil = (PFNGLCLEARSTENCILPROC)load("glClearStencil");
  	glad_glColorMask = (PFNGLCOLORMASKPROC)load("glColorMask");
  	glad_glCompileShader = (PFNGLCOMPILESHADERPROC)load("glCompileShader");
  	glad_glCompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC)load("glCompressedTexImage2D");
  	glad_glCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)load("glCompressedTexSubImage2D");
  	glad_glCopyTexImage2D = (PFNGLCOPYTEXIMAGE2DPROC)load("glCopyTexImage2D");
  	glad_glCopyTexSubImage2D = (PFNGLCOPYTEXSUBIMAGE2DPROC)load("glCopyTexSubImage2D");
  	glad_glCreateProgram = (PFNGLCREATEPROGRAMPROC)load("glCreateProgram");
  	glad_glCreateShader = (PFNGLCREATESHADERPROC)load("glCreateShader");
  	glad_glCullFace = (PFNGLCULLFACEPROC)load("glCullFace");
  	glad_glDeleteBuffers = (PFNGLDELETEBUFFERSPROC)load("glDeleteBuffers");
  	glad_glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC)load("glDeleteFramebuffers");
  	glad_glDeleteProgram = (PFNGLDELETEPROGRAMPROC)load("glDeleteProgram");
  	glad_glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC)load("glDeleteRenderbuffers");
  	glad_glDeleteShader = (PFNGLDELETESHADERPROC)load("glDeleteShader");
  	glad_glDeleteTextures = (PFNGLDELETETEXTURESPROC)load("glDeleteTextures");
  	glad_glDepthFunc = (PFNGLDEPTHFUNCPROC)load("glDepthFunc");
  	glad_glDepthMask = (PFNGLDEPTHMASKPROC)load("glDepthMask");
  	glad_glDepthRangef = (PFNGLDEPTHRANGEFPROC)load("glDepthRangef");
  	glad_glDetachShader = (PFNGLDETACHSHADERPROC)load("glDetachShader");
  	glad_glDisable = (PFNGLDISABLEPROC)load("glDisable");
  	glad_glDisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC)load("glDisableVertexAttribArray");
  	glad_glDrawArrays = (PFNGLDRAWARRAYSPROC)load("glDrawArrays");
  	glad_glDrawElements = (PFNGLDRAWELEMENTSPROC)load("glDrawElements");
  	glad_glEnable = (PFNGLENABLEPROC)load("glEnable");
  	glad_glEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC)load("glEnableVertexAttribArray");
  	glad_glFinish = (PFNGLFINISHPROC)load("glFinish");
  	glad_glFlush = (PFNGLFLUSHPROC)load("glFlush");
  	glad_glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC)load("glFramebufferRenderbuffer");
  	glad_glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC)load("glFramebufferTexture2D");
  	glad_glFrontFace = (PFNGLFRONTFACEPROC)load("glFrontFace");
  	glad_glGenBuffers = (PFNGLGENBUFFERSPROC)load("glGenBuffers");
  	glad_glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC)load("glGenerateMipmap");
  	glad_glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC)load("glGenFramebuffers");
  	glad_glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC)load("glGenRenderbuffers");
  	glad_glGenTextures = (PFNGLGENTEXTURESPROC)load("glGenTextures");
  	glad_glGetActiveAttrib = (PFNGLGETACTIVEATTRIBPROC)load("glGetActiveAttrib");
  	glad_glGetActiveUniform = (PFNGLGETACTIVEUNIFORMPROC)load("glGetActiveUniform");
  	glad_glGetAttachedShaders = (PFNGLGETATTACHEDSHADERSPROC)load("glGetAttachedShaders");
  	glad_glGetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC)load("glGetAttribLocation");
  	glad_glGetBooleanv = (PFNGLGETBOOLEANVPROC)load("glGetBooleanv");
  	glad_glGetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC)load("glGetBufferParameteriv");
  	glad_glGetError = (PFNGLGETERRORPROC)load("glGetError");
  	glad_glGetFloatv = (PFNGLGETFLOATVPROC)load("glGetFloatv");
  	glad_glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)load("glGetFramebufferAttachmentParameteriv");
  	glad_glGetIntegerv = (PFNGLGETINTEGERVPROC)load("glGetIntegerv");
  	glad_glGetProgramiv = (PFNGLGETPROGRAMIVPROC)load("glGetProgramiv");
  	glad_glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC)load("glGetProgramInfoLog");
  	glad_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC)load("glGetRenderbufferParameteriv");
  	glad_glGetShaderiv = (PFNGLGETSHADERIVPROC)load("glGetShaderiv");
  	glad_glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC)load("glGetShaderInfoLog");
  	glad_glGetShaderPrecisionFormat = (PFNGLGETSHADERPRECISIONFORMATPROC)load("glGetShaderPrecisionFormat");
  	glad_glGetShaderSource = (PFNGLGETSHADERSOURCEPROC)load("glGetShaderSource");
  	glad_glGetString = (PFNGLGETSTRINGPROC)load("glGetString");
  	glad_glGetTexParameterfv = (PFNGLGETTEXPARAMETERFVPROC)load("glGetTexParameterfv");
  	glad_glGetTexParameteriv = (PFNGLGETTEXPARAMETERIVPROC)load("glGetTexParameteriv");
  	glad_glGetUniformfv = (PFNGLGETUNIFORMFVPROC)load("glGetUniformfv");
  	glad_glGetUniformiv = (PFNGLGETUNIFORMIVPROC)load("glGetUniformiv");
  	glad_glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC)load("glGetUniformLocation");
  	glad_glGetVertexAttribfv = (PFNGLGETVERTEXATTRIBFVPROC)load("glGetVertexAttribfv");
  	glad_glGetVertexAttribiv = (PFNGLGETVERTEXATTRIBIVPROC)load("glGetVertexAttribiv");
  	glad_glGetVertexAttribPointerv = (PFNGLGETVERTEXATTRIBPOINTERVPROC)load("glGetVertexAttribPointerv");
  	glad_glHint = (PFNGLHINTPROC)load("glHint");
  	glad_glIsBuffer = (PFNGLISBUFFERPROC)load("glIsBuffer");
  	glad_glIsEnabled = (PFNGLISENABLEDPROC)load("glIsEnabled");
  	glad_glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC)load("glIsFramebuffer");
  	glad_glIsProgram = (PFNGLISPROGRAMPROC)load("glIsProgram");
  	glad_glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC)load("glIsRenderbuffer");
  	glad_glIsShader = (PFNGLISSHADERPROC)load("glIsShader");
  	glad_glIsTexture = (PFNGLISTEXTUREPROC)load("glIsTexture");
  	glad_glLineWidth = (PFNGLLINEWIDTHPROC)load("glLineWidth");
  	glad_glLinkProgram = (PFNGLLINKPROGRAMPROC)load("glLinkProgram");
  	glad_glPixelStorei = (PFNGLPIXELSTOREIPROC)load("glPixelStorei");
  	glad_glPolygonOffset = (PFNGLPOLYGONOFFSETPROC)load("glPolygonOffset");
  	glad_glReadPixels = (PFNGLREADPIXELSPROC)load("glReadPixels");
  	glad_glReleaseShaderCompiler = (PFNGLRELEASESHADERCOMPILERPROC)load("glReleaseShaderCompiler");
  	glad_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC)load("glRenderbufferStorage");
  	glad_glSampleCoverage = (PFNGLSAMPLECOVERAGEPROC)load("glSampleCoverage");
  	glad_glScissor = (PFNGLSCISSORPROC)load("glScissor");
  	glad_glShaderBinary = (PFNGLSHADERBINARYPROC)load("glShaderBinary");
  	glad_glShaderSource = (PFNGLSHADERSOURCEPROC)load("glShaderSource");
  	glad_glStencilFunc = (PFNGLSTENCILFUNCPROC)load("glStencilFunc");
  	glad_glStencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC)load("glStencilFuncSeparate");
  	glad_glStencilMask = (PFNGLSTENCILMASKPROC)load("glStencilMask");
  	glad_glStencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC)load("glStencilMaskSeparate");
  	glad_glStencilOp = (PFNGLSTENCILOPPROC)load("glStencilOp");
  	glad_glStencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC)load("glStencilOpSeparate");
  	glad_glTexImage2D = (PFNGLTEXIMAGE2DPROC)load("glTexImage2D");
  	glad_glTexParameterf = (PFNGLTEXPARAMETERFPROC)load("glTexParameterf");
  	glad_glTexParameterfv = (PFNGLTEXPARAMETERFVPROC)load("glTexParameterfv");
  	glad_glTexParameteri = (PFNGLTEXPARAMETERIPROC)load("glTexParameteri");
  	glad_glTexParameteriv = (PFNGLTEXPARAMETERIVPROC)load("glTexParameteriv");
  	glad_glTexSubImage2D = (PFNGLTEXSUBIMAGE2DPROC)load("glTexSubImage2D");
  	glad_glUniform1f = (PFNGLUNIFORM1FPROC)load("glUniform1f");
  	glad_glUniform1fv = (PFNGLUNIFORM1FVPROC)load("glUniform1fv");
  	glad_glUniform1i = (PFNGLUNIFORM1IPROC)load("glUniform1i");
  	glad_glUniform1iv = (PFNGLUNIFORM1IVPROC)load("glUniform1iv");
  	glad_glUniform2f = (PFNGLUNIFORM2FPROC)load("glUniform2f");
  	glad_glUniform2fv = (PFNGLUNIFORM2FVPROC)load("glUniform2fv");
  	glad_glUniform2i = (PFNGLUNIFORM2IPROC)load("glUniform2i");
  	glad_glUniform2iv = (PFNGLUNIFORM2IVPROC)load("glUniform2iv");
  	glad_glUniform3f = (PFNGLUNIFORM3FPROC)load("glUniform3f");
  	glad_glUniform3fv = (PFNGLUNIFORM3FVPROC)load("glUniform3fv");
  	glad_glUniform3i = (PFNGLUNIFORM3IPROC)load("glUniform3i");
  	glad_glUniform3iv = (PFNGLUNIFORM3IVPROC)load("glUniform3iv");
  	glad_glUniform4f = (PFNGLUNIFORM4FPROC)load("glUniform4f");
  	glad_glUniform4fv = (PFNGLUNIFORM4FVPROC)load("glUniform4fv");
  	glad_glUniform4i = (PFNGLUNIFORM4IPROC)load("glUniform4i");
  	glad_glUniform4iv = (PFNGLUNIFORM4IVPROC)load("glUniform4iv");
  	glad_glUniformMatrix2fv = (PFNGLUNIFORMMATRIX2FVPROC)load("glUniformMatrix2fv");
  	glad_glUniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC)load("glUniformMatrix3fv");
  	glad_glUniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC)load("glUniformMatrix4fv");
  	glad_glUseProgram = (PFNGLUSEPROGRAMPROC)load("glUseProgram");
  	glad_glValidateProgram = (PFNGLVALIDATEPROGRAMPROC)load("glValidateProgram");
  	glad_glVertexAttrib1f = (PFNGLVERTEXATTRIB1FPROC)load("glVertexAttrib1f");
  	glad_glVertexAttrib1fv = (PFNGLVERTEXATTRIB1FVPROC)load("glVertexAttrib1fv");
  	glad_glVertexAttrib2f = (PFNGLVERTEXATTRIB2FPROC)load("glVertexAttrib2f");
  	glad_glVertexAttrib2fv = (PFNGLVERTEXATTRIB2FVPROC)load("glVertexAttrib2fv");
  	glad_glVertexAttrib3f = (PFNGLVERTEXATTRIB3FPROC)load("glVertexAttrib3f");
  	glad_glVertexAttrib3fv = (PFNGLVERTEXATTRIB3FVPROC)load("glVertexAttrib3fv");
  	glad_glVertexAttrib4f = (PFNGLVERTEXATTRIB4FPROC)load("glVertexAttrib4f");
  	glad_glVertexAttrib4fv = (PFNGLVERTEXATTRIB4FVPROC)load("glVertexAttrib4fv");
  	glad_glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC)load("glVertexAttribPointer");
  	glad_glViewport = (PFNGLVIEWPORTPROC)load("glViewport");
  }
  static void load_GL_ES_VERSION_3_0(GLADloadproc load) {
  	if(!GLAD_GL_ES_VERSION_3_0) return;
  	glad_glReadBuffer = (PFNGLREADBUFFERPROC)load("glReadBuffer");
  	glad_glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC)load("glDrawRangeElements");
  	glad_glTexImage3D = (PFNGLTEXIMAGE3DPROC)load("glTexImage3D");
  	glad_glTexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC)load("glTexSubImage3D");
  	glad_glCopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC)load("glCopyTexSubImage3D");
  	glad_glCompressedTexImage3D = (PFNGLCOMPRESSEDTEXIMAGE3DPROC)load("glCompressedTexImage3D");
  	glad_glCompressedTexSubImage3D = (PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)load("glCompressedTexSubImage3D");
  	glad_glGenQueries = (PFNGLGENQUERIESPROC)load("glGenQueries");
  	glad_glDeleteQueries = (PFNGLDELETEQUERIESPROC)load("glDeleteQueries");
  	glad_glIsQuery = (PFNGLISQUERYPROC)load("glIsQuery");
  	glad_glBeginQuery = (PFNGLBEGINQUERYPROC)load("glBeginQuery");
  	glad_glEndQuery = (PFNGLENDQUERYPROC)load("glEndQuery");
  	glad_glGetQueryiv = (PFNGLGETQUERYIVPROC)load("glGetQueryiv");
  	glad_glGetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC)load("glGetQueryObjectuiv");
  	glad_glUnmapBuffer = (PFNGLUNMAPBUFFERPROC)load("glUnmapBuffer");
  	glad_glGetBufferPointerv = (PFNGLGETBUFFERPOINTERVPROC)load("glGetBufferPointerv");
  	glad_glDrawBuffers = (PFNGLDRAWBUFFERSPROC)load("glDrawBuffers");
  	glad_glUniformMatrix2x3fv = (PFNGLUNIFORMMATRIX2X3FVPROC)load("glUniformMatrix2x3fv");
  	glad_glUniformMatrix3x2fv = (PFNGLUNIFORMMATRIX3X2FVPROC)load("glUniformMatrix3x2fv");
  	glad_glUniformMatrix2x4fv = (PFNGLUNIFORMMATRIX2X4FVPROC)load("glUniformMatrix2x4fv");
  	glad_glUniformMatrix4x2fv = (PFNGLUNIFORMMATRIX4X2FVPROC)load("glUniformMatrix4x2fv");
  	glad_glUniformMatrix3x4fv = (PFNGLUNIFORMMATRIX3X4FVPROC)load("glUniformMatrix3x4fv");
  	glad_glUniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FVPROC)load("glUniformMatrix4x3fv");
  	glad_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC)load("glBlitFramebuffer");
  	glad_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)load("glRenderbufferStorageMultisample");
  	glad_glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC)load("glFramebufferTextureLayer");
  	glad_glMapBufferRange = (PFNGLMAPBUFFERRANGEPROC)load("glMapBufferRange");
  	glad_glFlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC)load("glFlushMappedBufferRange");
  	glad_glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC)load("glBindVertexArray");
  	glad_glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC)load("glDeleteVertexArrays");
  	glad_glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC)load("glGenVertexArrays");
  	glad_glIsVertexArray = (PFNGLISVERTEXARRAYPROC)load("glIsVertexArray");
  	glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)load("glGetIntegeri_v");
  	glad_glBeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACKPROC)load("glBeginTransformFeedback");
  	glad_glEndTransformFeedback = (PFNGLENDTRANSFORMFEEDBACKPROC)load("glEndTransformFeedback");
  	glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)load("glBindBufferRange");
  	glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)load("glBindBufferBase");
  	glad_glTransformFeedbackVaryings = (PFNGLTRANSFORMFEEDBACKVARYINGSPROC)load("glTransformFeedbackVaryings");
  	glad_glGetTransformFeedbackVarying = (PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)load("glGetTransformFeedbackVarying");
  	glad_glVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC)load("glVertexAttribIPointer");
  	glad_glGetVertexAttribIiv = (PFNGLGETVERTEXATTRIBIIVPROC)load("glGetVertexAttribIiv");
  	glad_glGetVertexAttribIuiv = (PFNGLGETVERTEXATTRIBIUIVPROC)load("glGetVertexAttribIuiv");
  	glad_glVertexAttribI4i = (PFNGLVERTEXATTRIBI4IPROC)load("glVertexAttribI4i");
  	glad_glVertexAttribI4ui = (PFNGLVERTEXATTRIBI4UIPROC)load("glVertexAttribI4ui");
  	glad_glVertexAttribI4iv = (PFNGLVERTEXATTRIBI4IVPROC)load("glVertexAttribI4iv");
  	glad_glVertexAttribI4uiv = (PFNGLVERTEXATTRIBI4UIVPROC)load("glVertexAttribI4uiv");
  	glad_glGetUniformuiv = (PFNGLGETUNIFORMUIVPROC)load("glGetUniformuiv");
  	glad_glGetFragDataLocation = (PFNGLGETFRAGDATALOCATIONPROC)load("glGetFragDataLocation");
  	glad_glUniform1ui = (PFNGLUNIFORM1UIPROC)load("glUniform1ui");
  	glad_glUniform2ui = (PFNGLUNIFORM2UIPROC)load("glUniform2ui");
  	glad_glUniform3ui = (PFNGLUNIFORM3UIPROC)load("glUniform3ui");
  	glad_glUniform4ui = (PFNGLUNIFORM4UIPROC)load("glUniform4ui");
  	glad_glUniform1uiv = (PFNGLUNIFORM1UIVPROC)load("glUniform1uiv");
  	glad_glUniform2uiv = (PFNGLUNIFORM2UIVPROC)load("glUniform2uiv");
  	glad_glUniform3uiv = (PFNGLUNIFORM3UIVPROC)load("glUniform3uiv");
  	glad_glUniform4uiv = (PFNGLUNIFORM4UIVPROC)load("glUniform4uiv");
  	glad_glClearBufferiv = (PFNGLCLEARBUFFERIVPROC)load("glClearBufferiv");
  	glad_glClearBufferuiv = (PFNGLCLEARBUFFERUIVPROC)load("glClearBufferuiv");
  	glad_glClearBufferfv = (PFNGLCLEARBUFFERFVPROC)load("glClearBufferfv");
  	glad_glClearBufferfi = (PFNGLCLEARBUFFERFIPROC)load("glClearBufferfi");
  	glad_glGetStringi = (PFNGLGETSTRINGIPROC)load("glGetStringi");
  	glad_glCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC)load("glCopyBufferSubData");
  	glad_glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC)load("glGetUniformIndices");
  	glad_glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC)load("glGetActiveUniformsiv");
  	glad_glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC)load("glGetUniformBlockIndex");
  	glad_glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC)load("glGetActiveUniformBlockiv");
  	glad_glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)load("glGetActiveUniformBlockName");
  	glad_glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC)load("glUniformBlockBinding");
  	glad_glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC)load("glDrawArraysInstanced");
  	glad_glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC)load("glDrawElementsInstanced");
  	glad_glFenceSync = (PFNGLFENCESYNCPROC)load("glFenceSync");
  	glad_glIsSync = (PFNGLISSYNCPROC)load("glIsSync");
  	glad_glDeleteSync = (PFNGLDELETESYNCPROC)load("glDeleteSync");
  	glad_glClientWaitSync = (PFNGLCLIENTWAITSYNCPROC)load("glClientWaitSync");
  	glad_glWaitSync = (PFNGLWAITSYNCPROC)load("glWaitSync");
  	glad_glGetInteger64v = (PFNGLGETINTEGER64VPROC)load("glGetInteger64v");
  	glad_glGetSynciv = (PFNGLGETSYNCIVPROC)load("glGetSynciv");
  	glad_glGetInteger64i_v = (PFNGLGETINTEGER64I_VPROC)load("glGetInteger64i_v");
  	glad_glGetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64VPROC)load("glGetBufferParameteri64v");
  	glad_glGenSamplers = (PFNGLGENSAMPLERSPROC)load("glGenSamplers");
  	glad_glDeleteSamplers = (PFNGLDELETESAMPLERSPROC)load("glDeleteSamplers");
  	glad_glIsSampler = (PFNGLISSAMPLERPROC)load("glIsSampler");
  	glad_glBindSampler = (PFNGLBINDSAMPLERPROC)load("glBindSampler");
  	glad_glSamplerParameteri = (PFNGLSAMPLERPARAMETERIPROC)load("glSamplerParameteri");
  	glad_glSamplerParameteriv = (PFNGLSAMPLERPARAMETERIVPROC)load("glSamplerParameteriv");
  	glad_glSamplerParameterf = (PFNGLSAMPLERPARAMETERFPROC)load("glSamplerParameterf");
  	glad_glSamplerParameterfv = (PFNGLSAMPLERPARAMETERFVPROC)load("glSamplerParameterfv");
  	glad_glGetSamplerParameteriv = (PFNGLGETSAMPLERPARAMETERIVPROC)load("glGetSamplerParameteriv");
  	glad_glGetSamplerParameterfv = (PFNGLGETSAMPLERPARAMETERFVPROC)load("glGetSamplerParameterfv");
  	glad_glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC)load("glVertexAttribDivisor");
  	glad_glBindTransformFeedback = (PFNGLBINDTRANSFORMFEEDBACKPROC)load("glBindTransformFeedback");
  	glad_glDeleteTransformFeedbacks = (PFNGLDELETETRANSFORMFEEDBACKSPROC)load("glDeleteTransformFeedbacks");
  	glad_glGenTransformFeedbacks = (PFNGLGENTRANSFORMFEEDBACKSPROC)load("glGenTransformFeedbacks");
  	glad_glIsTransformFeedback = (PFNGLISTRANSFORMFEEDBACKPROC)load("glIsTransformFeedback");
  	glad_glPauseTransformFeedback = (PFNGLPAUSETRANSFORMFEEDBACKPROC)load("glPauseTransformFeedback");
  	glad_glResumeTransformFeedback = (PFNGLRESUMETRANSFORMFEEDBACKPROC)load("glResumeTransformFeedback");
  	glad_glGetProgramBinary = (PFNGLGETPROGRAMBINARYPROC)load("glGetProgramBinary");
  	glad_glProgramBinary = (PFNGLPROGRAMBINARYPROC)load("glProgramBinary");
  	glad_glProgramParameteri = (PFNGLPROGRAMPARAMETERIPROC)load("glProgramParameteri");
  	glad_glInvalidateFramebuffer = (PFNGLINVALIDATEFRAMEBUFFERPROC)load("glInvalidateFramebuffer");
  	glad_glInvalidateSubFramebuffer = (PFNGLINVALIDATESUBFRAMEBUFFERPROC)load("glInvalidateSubFramebuffer");
  	glad_glTexStorage2D = (PFNGLTEXSTORAGE2DPROC)load("glTexStorage2D");
  	glad_glTexStorage3D = (PFNGLTEXSTORAGE3DPROC)load("glTexStorage3D");
  	glad_glGetInternalformativ = (PFNGLGETINTERNALFORMATIVPROC)load("glGetInternalformativ");
  }
  static void load_GL_ES_VERSION_3_1(GLADloadproc load) {
  	if(!GLAD_GL_ES_VERSION_3_1) return;
  	glad_glDispatchCompute = (PFNGLDISPATCHCOMPUTEPROC)load("glDispatchCompute");
  	glad_glDispatchComputeIndirect = (PFNGLDISPATCHCOMPUTEINDIRECTPROC)load("glDispatchComputeIndirect");
  	glad_glDrawArraysIndirect = (PFNGLDRAWARRAYSINDIRECTPROC)load("glDrawArraysIndirect");
  	glad_glDrawElementsIndirect = (PFNGLDRAWELEMENTSINDIRECTPROC)load("glDrawElementsIndirect");
  	glad_glFramebufferParameteri = (PFNGLFRAMEBUFFERPARAMETERIPROC)load("glFramebufferParameteri");
  	glad_glGetFramebufferParameteriv = (PFNGLGETFRAMEBUFFERPARAMETERIVPROC)load("glGetFramebufferParameteriv");
  	glad_glGetProgramInterfaceiv = (PFNGLGETPROGRAMINTERFACEIVPROC)load("glGetProgramInterfaceiv");
  	glad_glGetProgramResourceIndex = (PFNGLGETPROGRAMRESOURCEINDEXPROC)load("glGetProgramResourceIndex");
  	glad_glGetProgramResourceName = (PFNGLGETPROGRAMRESOURCENAMEPROC)load("glGetProgramResourceName");
  	glad_glGetProgramResourceiv = (PFNGLGETPROGRAMRESOURCEIVPROC)load("glGetProgramResourceiv");
  	glad_glGetProgramResourceLocation = (PFNGLGETPROGRAMRESOURCELOCATIONPROC)load("glGetProgramResourceLocation");
  	glad_glUseProgramStages = (PFNGLUSEPROGRAMSTAGESPROC)load("glUseProgramStages");
  	glad_glActiveShaderProgram = (PFNGLACTIVESHADERPROGRAMPROC)load("glActiveShaderProgram");
  	glad_glCreateShaderProgramv = (PFNGLCREATESHADERPROGRAMVPROC)load("glCreateShaderProgramv");
  	glad_glBindProgramPipeline = (PFNGLBINDPROGRAMPIPELINEPROC)load("glBindProgramPipeline");
  	glad_glDeleteProgramPipelines = (PFNGLDELETEPROGRAMPIPELINESPROC)load("glDeleteProgramPipelines");
  	glad_glGenProgramPipelines = (PFNGLGENPROGRAMPIPELINESPROC)load("glGenProgramPipelines");
  	glad_glIsProgramPipeline = (PFNGLISPROGRAMPIPELINEPROC)load("glIsProgramPipeline");
  	glad_glGetProgramPipelineiv = (PFNGLGETPROGRAMPIPELINEIVPROC)load("glGetProgramPipelineiv");
  	glad_glProgramUniform1i = (PFNGLPROGRAMUNIFORM1IPROC)load("glProgramUniform1i");
  	glad_glProgramUniform2i = (PFNGLPROGRAMUNIFORM2IPROC)load("glProgramUniform2i");
  	glad_glProgramUniform3i = (PFNGLPROGRAMUNIFORM3IPROC)load("glProgramUniform3i");
  	glad_glProgramUniform4i = (PFNGLPROGRAMUNIFORM4IPROC)load("glProgramUniform4i");
  	glad_glProgramUniform1ui = (PFNGLPROGRAMUNIFORM1UIPROC)load("glProgramUniform1ui");
  	glad_glProgramUniform2ui = (PFNGLPROGRAMUNIFORM2UIPROC)load("glProgramUniform2ui");
  	glad_glProgramUniform3ui = (PFNGLPROGRAMUNIFORM3UIPROC)load("glProgramUniform3ui");
  	glad_glProgramUniform4ui = (PFNGLPROGRAMUNIFORM4UIPROC)load("glProgramUniform4ui");
  	glad_glProgramUniform1f = (PFNGLPROGRAMUNIFORM1FPROC)load("glProgramUniform1f");
  	glad_glProgramUniform2f = (PFNGLPROGRAMUNIFORM2FPROC)load("glProgramUniform2f");
  	glad_glProgramUniform3f = (PFNGLPROGRAMUNIFORM3FPROC)load("glProgramUniform3f");
  	glad_glProgramUniform4f = (PFNGLPROGRAMUNIFORM4FPROC)load("glProgramUniform4f");
  	glad_glProgramUniform1iv = (PFNGLPROGRAMUNIFORM1IVPROC)load("glProgramUniform1iv");
  	glad_glProgramUniform2iv = (PFNGLPROGRAMUNIFORM2IVPROC)load("glProgramUniform2iv");
  	glad_glProgramUniform3iv = (PFNGLPROGRAMUNIFORM3IVPROC)load("glProgramUniform3iv");
  	glad_glProgramUniform4iv = (PFNGLPROGRAMUNIFORM4IVPROC)load("glProgramUniform4iv");
  	glad_glProgramUniform1uiv = (PFNGLPROGRAMUNIFORM1UIVPROC)load("glProgramUniform1uiv");
  	glad_glProgramUniform2uiv = (PFNGLPROGRAMUNIFORM2UIVPROC)load("glProgramUniform2uiv");
  	glad_glProgramUniform3uiv = (PFNGLPROGRAMUNIFORM3UIVPROC)load("glProgramUniform3uiv");
  	glad_glProgramUniform4uiv = (PFNGLPROGRAMUNIFORM4UIVPROC)load("glProgramUniform4uiv");
  	glad_glProgramUniform1fv = (PFNGLPROGRAMUNIFORM1FVPROC)load("glProgramUniform1fv");
  	glad_glProgramUniform2fv = (PFNGLPROGRAMUNIFORM2FVPROC)load("glProgramUniform2fv");
  	glad_glProgramUniform3fv = (PFNGLPROGRAMUNIFORM3FVPROC)load("glProgramUniform3fv");
  	glad_glProgramUniform4fv = (PFNGLPROGRAMUNIFORM4FVPROC)load("glProgramUniform4fv");
  	glad_glProgramUniformMatrix2fv = (PFNGLPROGRAMUNIFORMMATRIX2FVPROC)load("glProgramUniformMatrix2fv");
  	glad_glProgramUniformMatrix3fv = (PFNGLPROGRAMUNIFORMMATRIX3FVPROC)load("glProgramUniformMatrix3fv");
  	glad_glProgramUniformMatrix4fv = (PFNGLPROGRAMUNIFORMMATRIX4FVPROC)load("glProgramUniformMatrix4fv");
  	glad_glProgramUniformMatrix2x3fv = (PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC)load("glProgramUniformMatrix2x3fv");
  	glad_glProgramUniformMatrix3x2fv = (PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC)load("glProgramUniformMatrix3x2fv");
  	glad_glProgramUniformMatrix2x4fv = (PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC)load("glProgramUniformMatrix2x4fv");
  	glad_glProgramUniformMatrix4x2fv = (PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC)load("glProgramUniformMatrix4x2fv");
  	glad_glProgramUniformMatrix3x4fv = (PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC)load("glProgramUniformMatrix3x4fv");
  	glad_glProgramUniformMatrix4x3fv = (PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC)load("glProgramUniformMatrix4x3fv");
  	glad_glValidateProgramPipeline = (PFNGLVALIDATEPROGRAMPIPELINEPROC)load("glValidateProgramPipeline");
  	glad_glGetProgramPipelineInfoLog = (PFNGLGETPROGRAMPIPELINEINFOLOGPROC)load("glGetProgramPipelineInfoLog");
  	glad_glBindImageTexture = (PFNGLBINDIMAGETEXTUREPROC)load("glBindImageTexture");
  	glad_glGetBooleani_v = (PFNGLGETBOOLEANI_VPROC)load("glGetBooleani_v");
  	glad_glMemoryBarrier = (PFNGLMEMORYBARRIERPROC)load("glMemoryBarrier");
  	glad_glMemoryBarrierByRegion = (PFNGLMEMORYBARRIERBYREGIONPROC)load("glMemoryBarrierByRegion");
  	glad_glTexStorage2DMultisample = (PFNGLTEXSTORAGE2DMULTISAMPLEPROC)load("glTexStorage2DMultisample");
  	glad_glGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC)load("glGetMultisamplefv");
  	glad_glSampleMaski = (PFNGLSAMPLEMASKIPROC)load("glSampleMaski");
  	glad_glGetTexLevelParameteriv = (PFNGLGETTEXLEVELPARAMETERIVPROC)load("glGetTexLevelParameteriv");
  	glad_glGetTexLevelParameterfv = (PFNGLGETTEXLEVELPARAMETERFVPROC)load("glGetTexLevelParameterfv");
  	glad_glBindVertexBuffer = (PFNGLBINDVERTEXBUFFERPROC)load("glBindVertexBuffer");
  	glad_glVertexAttribFormat = (PFNGLVERTEXATTRIBFORMATPROC)load("glVertexAttribFormat");
  	glad_glVertexAttribIFormat = (PFNGLVERTEXATTRIBIFORMATPROC)load("glVertexAttribIFormat");
  	glad_glVertexAttribBinding = (PFNGLVERTEXATTRIBBINDINGPROC)load("glVertexAttribBinding");
  	glad_glVertexBindingDivisor = (PFNGLVERTEXBINDINGDIVISORPROC)load("glVertexBindingDivisor");
  }
  static int find_extensionsGLES2(void) {
  	if (!get_exts()) return 0;
  	(void)&has_ext;
  	free_exts();
  	return 1;
  }
  
  static void find_coreGLES2(void) {
  
      /* Thank you @elmindreda
       * https://github.com/elmindreda/greg/blob/master/templates/greg.c.in#L176
       * https://github.com/glfw/glfw/blob/master/src/context.c#L36
       */
      int i, major, minor;
  
      const char* version;
      const char* prefixes[] = {
          "OpenGL ES-CM ",
          "OpenGL ES-CL ",
          "OpenGL ES ",
          NULL
      };
  
      version = (const char*) glGetString(GL_VERSION);
      if (!version) return;
  
      for (i = 0;  prefixes[i];  i++) {
          const size_t length = strlen(prefixes[i]);
          if (strncmp(version, prefixes[i], length) == 0) {
              version += length;
              break;
          }
      }
  
  /* PR #18 */
  #ifdef _MSC_VER
      sscanf_s(version, "%d.%d", &major, &minor);
  #else
      sscanf(version, "%d.%d", &major, &minor);
  #endif
  
      GLVersion.major = major; GLVersion.minor = minor;
      max_loaded_major = major; max_loaded_minor = minor;
  	GLAD_GL_ES_VERSION_2_0 = (major == 2 && minor >= 0) || major > 2;
  	GLAD_GL_ES_VERSION_3_0 = (major == 3 && minor >= 0) || major > 3;
  	GLAD_GL_ES_VERSION_3_1 = (major == 3 && minor >= 1) || major > 3;
  	if (GLVersion.major > 3 || (GLVersion.major >= 3 && GLVersion.minor >= 1)) {
  		max_loaded_major = 3;
  		max_loaded_minor = 1;
  	}
  }
  
  int gladLoadGLES2Loader(GLADloadproc load) {
  	GLVersion.major = 0; GLVersion.minor = 0;
  	glGetString = (PFNGLGETSTRINGPROC)load("glGetString");
  	if(glGetString == NULL) return 0;
  	if(glGetString(GL_VERSION) == NULL) return 0;
  	find_coreGLES2();
  	load_GL_ES_VERSION_2_0(load);
  	load_GL_ES_VERSION_3_0(load);
  	load_GL_ES_VERSION_3_1(load);
  
  	if (!find_extensionsGLES2()) return 0;
  	return GLVersion.major != 0 || GLVersion.minor != 0;
  }
  
  