/*

    OpenGL loader generated by glad 0.1.18a0 on Mon Mar 26 12:46:07 2018.

    Language/Generator: C/C++ Debug
    Specification: gl
    APIs: gl=2.0
    Profile: compatibility
    Extensions:
        GL_APPLE_vertex_array_object,
        GL_ARB_framebuffer_object,
        GL_ARB_pixel_buffer_object,
        GL_ARB_texture_float,
        GL_ARB_vertex_array_object,
        GL_ARB_vertex_buffer_object,
        GL_EXT_framebuffer_object
    Loader: True
    Local files: False
    Omit khrplatform: True

    Commandline:
        --profile="compatibility" --api="gl=2.0" --generator="c-debug" --spec="gl" --omit-khrplatform --extensions="GL_APPLE_vertex_array_object,GL_ARB_framebuffer_object,GL_ARB_pixel_buffer_object,GL_ARB_texture_float,GL_ARB_vertex_array_object,GL_ARB_vertex_buffer_object,GL_EXT_framebuffer_object"
    Online:
        http://glad.dav1d.de/#profile=compatibility&language=c-debug&specification=gl&loader=on&api=gl%3D2.0&extensions=GL_APPLE_vertex_array_object&extensions=GL_ARB_framebuffer_object&extensions=GL_ARB_pixel_buffer_object&extensions=GL_ARB_texture_float&extensions=GL_ARB_vertex_array_object&extensions=GL_ARB_vertex_buffer_object&extensions=GL_EXT_framebuffer_object
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <glad/glad.h>

void _pre_call_callback_default(const char *name, void *funcptr, int len_args, ...) {
    (void) name;
    (void) funcptr;
    (void) len_args;
}
void _post_call_callback_default(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 = _pre_call_callback_default;
void glad_set_pre_callback(GLADcallback cb) {
    _pre_call_callback = cb;
}

static GLADcallback _post_call_callback = _post_call_callback_default;
void glad_set_post_callback(GLADcallback cb) {
    _post_call_callback = cb;
}

static void* get_proc(const char *namez);

#ifdef _WIN32
#include <windows.h>
static HMODULE libGL;

typedef void* (APIENTRYP PFNWGLGETPROCADDRESSPROC_PRIVATE)(const char*);
static PFNWGLGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr;

static
int open_gl(void) {
    libGL = LoadLibraryW(L"opengl32.dll");
    if(libGL != NULL) {
        gladGetProcAddressPtr = (PFNWGLGETPROCADDRESSPROC_PRIVATE)GetProcAddress(
                libGL, "wglGetProcAddress");
        return gladGetProcAddressPtr != NULL;
    }

    return 0;
}

static
void close_gl(void) {
    if(libGL != NULL) {
        FreeLibrary((HMODULE) libGL);
    libGL = NULL;
    }
}
#else
#include <dlfcn.h>
static void* libGL;

#ifndef __APPLE__
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) {
#ifdef __APPLE__
            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;

#ifndef __APPLE__
    if(gladGetProcAddressPtr != NULL) {
        result = gladGetProcAddressPtr(namez);
    }
#endif
    if(result == NULL) {
#ifdef _WIN32
        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;

#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 const 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 = (const char **)realloc((void *)exts_i, (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) {
#if _MSC_VER >= 1400
                strncpy_s(local_str, len+1, gl_str_tmp, len);
#else
                strncpy(local_str, gl_str_tmp, len+1);
#endif
            }
            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;
int GLAD_GL_VERSION_1_1;
int GLAD_GL_VERSION_1_2;
int GLAD_GL_VERSION_1_3;
int GLAD_GL_VERSION_1_4;
int GLAD_GL_VERSION_1_5;
int GLAD_GL_VERSION_2_0;
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("glCopyTexImage1D", (void*)glCopyTexImage1D, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
     glad_glCopyTexImage1D(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
    _post_call_callback("glCopyTexImage1D", (void*)glCopyTexImage1D, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
    
}
PFNGLCOPYTEXIMAGE1DPROC glad_debug_glCopyTexImage1D = glad_debug_impl_glCopyTexImage1D;
PFNGLWINDOWPOS2SPROC glad_glWindowPos2s;
void APIENTRY glad_debug_impl_glWindowPos2s(GLshort arg0, GLshort arg1) {    
    _pre_call_callback("glWindowPos2s", (void*)glWindowPos2s, 2, arg0, arg1);
     glad_glWindowPos2s(arg0, arg1);
    _post_call_callback("glWindowPos2s", (void*)glWindowPos2s, 2, arg0, arg1);
    
}
PFNGLWINDOWPOS2SPROC glad_debug_glWindowPos2s = glad_debug_impl_glWindowPos2s;
PFNGLWINDOWPOS2IPROC glad_glWindowPos2i;
void APIENTRY glad_debug_impl_glWindowPos2i(GLint arg0, GLint arg1) {    
    _pre_call_callback("glWindowPos2i", (void*)glWindowPos2i, 2, arg0, arg1);
     glad_glWindowPos2i(arg0, arg1);
    _post_call_callback("glWindowPos2i", (void*)glWindowPos2i, 2, arg0, arg1);
    
}
PFNGLWINDOWPOS2IPROC glad_debug_glWindowPos2i = glad_debug_impl_glWindowPos2i;
PFNGLWINDOWPOS2FPROC glad_glWindowPos2f;
void APIENTRY glad_debug_impl_glWindowPos2f(GLfloat arg0, GLfloat arg1) {    
    _pre_call_callback("glWindowPos2f", (void*)glWindowPos2f, 2, arg0, arg1);
     glad_glWindowPos2f(arg0, arg1);
    _post_call_callback("glWindowPos2f", (void*)glWindowPos2f, 2, arg0, arg1);
    
}
PFNGLWINDOWPOS2FPROC glad_debug_glWindowPos2f = glad_debug_impl_glWindowPos2f;
PFNGLWINDOWPOS2DPROC glad_glWindowPos2d;
void APIENTRY glad_debug_impl_glWindowPos2d(GLdouble arg0, GLdouble arg1) {    
    _pre_call_callback("glWindowPos2d", (void*)glWindowPos2d, 2, arg0, arg1);
     glad_glWindowPos2d(arg0, arg1);
    _post_call_callback("glWindowPos2d", (void*)glWindowPos2d, 2, arg0, arg1);
    
}
PFNGLWINDOWPOS2DPROC glad_debug_glWindowPos2d = glad_debug_impl_glWindowPos2d;
PFNGLVERTEX2FVPROC glad_glVertex2fv;
void APIENTRY glad_debug_impl_glVertex2fv(const GLfloat * arg0) {    
    _pre_call_callback("glVertex2fv", (void*)glVertex2fv, 1, arg0);
     glad_glVertex2fv(arg0);
    _post_call_callback("glVertex2fv", (void*)glVertex2fv, 1, arg0);
    
}
PFNGLVERTEX2FVPROC glad_debug_glVertex2fv = glad_debug_impl_glVertex2fv;
PFNGLINDEXIPROC glad_glIndexi;
void APIENTRY glad_debug_impl_glIndexi(GLint arg0) {    
    _pre_call_callback("glIndexi", (void*)glIndexi, 1, arg0);
     glad_glIndexi(arg0);
    _post_call_callback("glIndexi", (void*)glIndexi, 1, arg0);
    
}
PFNGLINDEXIPROC glad_debug_glIndexi = glad_debug_impl_glIndexi;
PFNGLRECTDVPROC glad_glRectdv;
void APIENTRY glad_debug_impl_glRectdv(const GLdouble * arg0, const GLdouble * arg1) {    
    _pre_call_callback("glRectdv", (void*)glRectdv, 2, arg0, arg1);
     glad_glRectdv(arg0, arg1);
    _post_call_callback("glRectdv", (void*)glRectdv, 2, arg0, arg1);
    
}
PFNGLRECTDVPROC glad_debug_glRectdv = glad_debug_impl_glRectdv;
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("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("glCompressedTexSubImage3D", (void*)glCompressedTexSubImage3D, 11, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
    
}
PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_debug_glCompressedTexSubImage3D = glad_debug_impl_glCompressedTexSubImage3D;
PFNGLEVALCOORD2DPROC glad_glEvalCoord2d;
void APIENTRY glad_debug_impl_glEvalCoord2d(GLdouble arg0, GLdouble arg1) {    
    _pre_call_callback("glEvalCoord2d", (void*)glEvalCoord2d, 2, arg0, arg1);
     glad_glEvalCoord2d(arg0, arg1);
    _post_call_callback("glEvalCoord2d", (void*)glEvalCoord2d, 2, arg0, arg1);
    
}
PFNGLEVALCOORD2DPROC glad_debug_glEvalCoord2d = glad_debug_impl_glEvalCoord2d;
PFNGLEVALCOORD2FPROC glad_glEvalCoord2f;
void APIENTRY glad_debug_impl_glEvalCoord2f(GLfloat arg0, GLfloat arg1) {    
    _pre_call_callback("glEvalCoord2f", (void*)glEvalCoord2f, 2, arg0, arg1);
     glad_glEvalCoord2f(arg0, arg1);
    _post_call_callback("glEvalCoord2f", (void*)glEvalCoord2f, 2, arg0, arg1);
    
}
PFNGLEVALCOORD2FPROC glad_debug_glEvalCoord2f = glad_debug_impl_glEvalCoord2f;
PFNGLINDEXDPROC glad_glIndexd;
void APIENTRY glad_debug_impl_glIndexd(GLdouble arg0) {    
    _pre_call_callback("glIndexd", (void*)glIndexd, 1, arg0);
     glad_glIndexd(arg0);
    _post_call_callback("glIndexd", (void*)glIndexd, 1, arg0);
    
}
PFNGLINDEXDPROC glad_debug_glIndexd = glad_debug_impl_glIndexd;
PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv;
void APIENTRY glad_debug_impl_glVertexAttrib1sv(GLuint arg0, const GLshort * arg1) {    
    _pre_call_callback("glVertexAttrib1sv", (void*)glVertexAttrib1sv, 2, arg0, arg1);
     glad_glVertexAttrib1sv(arg0, arg1);
    _post_call_callback("glVertexAttrib1sv", (void*)glVertexAttrib1sv, 2, arg0, arg1);
    
}
PFNGLVERTEXATTRIB1SVPROC glad_debug_glVertexAttrib1sv = glad_debug_impl_glVertexAttrib1sv;
PFNGLINDEXFPROC glad_glIndexf;
void APIENTRY glad_debug_impl_glIndexf(GLfloat arg0) {    
    _pre_call_callback("glIndexf", (void*)glIndexf, 1, arg0);
     glad_glIndexf(arg0);
    _post_call_callback("glIndexf", (void*)glIndexf, 1, arg0);
    
}
PFNGLINDEXFPROC glad_debug_glIndexf = glad_debug_impl_glIndexf;
PFNGLLINEWIDTHPROC glad_glLineWidth;
void APIENTRY glad_debug_impl_glLineWidth(GLfloat arg0) {    
    _pre_call_callback("glLineWidth", (void*)glLineWidth, 1, arg0);
     glad_glLineWidth(arg0);
    _post_call_callback("glLineWidth", (void*)glLineWidth, 1, arg0);
    
}
PFNGLLINEWIDTHPROC glad_debug_glLineWidth = glad_debug_impl_glLineWidth;
PFNGLGETMAPFVPROC glad_glGetMapfv;
void APIENTRY glad_debug_impl_glGetMapfv(GLenum arg0, GLenum arg1, GLfloat * arg2) {    
    _pre_call_callback("glGetMapfv", (void*)glGetMapfv, 3, arg0, arg1, arg2);
     glad_glGetMapfv(arg0, arg1, arg2);
    _post_call_callback("glGetMapfv", (void*)glGetMapfv, 3, arg0, arg1, arg2);
    
}
PFNGLGETMAPFVPROC glad_debug_glGetMapfv = glad_debug_impl_glGetMapfv;
PFNGLINDEXSPROC glad_glIndexs;
void APIENTRY glad_debug_impl_glIndexs(GLshort arg0) {    
    _pre_call_callback("glIndexs", (void*)glIndexs, 1, arg0);
     glad_glIndexs(arg0);
    _post_call_callback("glIndexs", (void*)glIndexs, 1, arg0);
    
}
PFNGLINDEXSPROC glad_debug_glIndexs = glad_debug_impl_glIndexs;
PFNGLCOMPILESHADERPROC glad_glCompileShader;
void APIENTRY glad_debug_impl_glCompileShader(GLuint arg0) {    
    _pre_call_callback("glCompileShader", (void*)glCompileShader, 1, arg0);
     glad_glCompileShader(arg0);
    _post_call_callback("glCompileShader", (void*)glCompileShader, 1, arg0);
    
}
PFNGLCOMPILESHADERPROC glad_debug_glCompileShader = glad_debug_impl_glCompileShader;
PFNGLWINDOWPOS2IVPROC glad_glWindowPos2iv;
void APIENTRY glad_debug_impl_glWindowPos2iv(const GLint * arg0) {    
    _pre_call_callback("glWindowPos2iv", (void*)glWindowPos2iv, 1, arg0);
     glad_glWindowPos2iv(arg0);
    _post_call_callback("glWindowPos2iv", (void*)glWindowPos2iv, 1, arg0);
    
}
PFNGLWINDOWPOS2IVPROC glad_debug_glWindowPos2iv = glad_debug_impl_glWindowPos2iv;
PFNGLINDEXFVPROC glad_glIndexfv;
void APIENTRY glad_debug_impl_glIndexfv(const GLfloat * arg0) {    
    _pre_call_callback("glIndexfv", (void*)glIndexfv, 1, arg0);
     glad_glIndexfv(arg0);
    _post_call_callback("glIndexfv", (void*)glIndexfv, 1, arg0);
    
}
PFNGLINDEXFVPROC glad_debug_glIndexfv = glad_debug_impl_glIndexfv;
PFNGLFOGIVPROC glad_glFogiv;
void APIENTRY glad_debug_impl_glFogiv(GLenum arg0, const GLint * arg1) {    
    _pre_call_callback("glFogiv", (void*)glFogiv, 2, arg0, arg1);
     glad_glFogiv(arg0, arg1);
    _post_call_callback("glFogiv", (void*)glFogiv, 2, arg0, arg1);
    
}
PFNGLFOGIVPROC glad_debug_glFogiv = glad_debug_impl_glFogiv;
PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate;
void APIENTRY glad_debug_impl_glStencilMaskSeparate(GLenum arg0, GLuint arg1) {    
    _pre_call_callback("glStencilMaskSeparate", (void*)glStencilMaskSeparate, 2, arg0, arg1);
     glad_glStencilMaskSeparate(arg0, arg1);
    _post_call_callback("glStencilMaskSeparate", (void*)glStencilMaskSeparate, 2, arg0, arg1);
    
}
PFNGLSTENCILMASKSEPARATEPROC glad_debug_glStencilMaskSeparate = glad_debug_impl_glStencilMaskSeparate;
PFNGLRASTERPOS2FVPROC glad_glRasterPos2fv;
void APIENTRY glad_debug_impl_glRasterPos2fv(const GLfloat * arg0) {    
    _pre_call_callback("glRasterPos2fv", (void*)glRasterPos2fv, 1, arg0);
     glad_glRasterPos2fv(arg0);
    _post_call_callback("glRasterPos2fv", (void*)glRasterPos2fv, 1, arg0);
    
}
PFNGLRASTERPOS2FVPROC glad_debug_glRasterPos2fv = glad_debug_impl_glRasterPos2fv;
PFNGLLIGHTMODELIVPROC glad_glLightModeliv;
void APIENTRY glad_debug_impl_glLightModeliv(GLenum arg0, const GLint * arg1) {    
    _pre_call_callback("glLightModeliv", (void*)glLightModeliv, 2, arg0, arg1);
     glad_glLightModeliv(arg0, arg1);
    _post_call_callback("glLightModeliv", (void*)glLightModeliv, 2, arg0, arg1);
    
}
PFNGLLIGHTMODELIVPROC glad_debug_glLightModeliv = glad_debug_impl_glLightModeliv;
PFNGLCOLOR4UIPROC glad_glColor4ui;
void APIENTRY glad_debug_impl_glColor4ui(GLuint arg0, GLuint arg1, GLuint arg2, GLuint arg3) {    
    _pre_call_callback("glColor4ui", (void*)glColor4ui, 4, arg0, arg1, arg2, arg3);
     glad_glColor4ui(arg0, arg1, arg2, arg3);
    _post_call_callback("glColor4ui", (void*)glColor4ui, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLCOLOR4UIPROC glad_debug_glColor4ui = glad_debug_impl_glColor4ui;
PFNGLSECONDARYCOLOR3FVPROC glad_glSecondaryColor3fv;
void APIENTRY glad_debug_impl_glSecondaryColor3fv(const GLfloat * arg0) {    
    _pre_call_callback("glSecondaryColor3fv", (void*)glSecondaryColor3fv, 1, arg0);
     glad_glSecondaryColor3fv(arg0);
    _post_call_callback("glSecondaryColor3fv", (void*)glSecondaryColor3fv, 1, arg0);
    
}
PFNGLSECONDARYCOLOR3FVPROC glad_debug_glSecondaryColor3fv = glad_debug_impl_glSecondaryColor3fv;
PFNGLFOGFVPROC glad_glFogfv;
void APIENTRY glad_debug_impl_glFogfv(GLenum arg0, const GLfloat * arg1) {    
    _pre_call_callback("glFogfv", (void*)glFogfv, 2, arg0, arg1);
     glad_glFogfv(arg0, arg1);
    _post_call_callback("glFogfv", (void*)glFogfv, 2, arg0, arg1);
    
}
PFNGLFOGFVPROC glad_debug_glFogfv = glad_debug_impl_glFogfv;
PFNGLVERTEX4IVPROC glad_glVertex4iv;
void APIENTRY glad_debug_impl_glVertex4iv(const GLint * arg0) {    
    _pre_call_callback("glVertex4iv", (void*)glVertex4iv, 1, arg0);
     glad_glVertex4iv(arg0);
    _post_call_callback("glVertex4iv", (void*)glVertex4iv, 1, arg0);
    
}
PFNGLVERTEX4IVPROC glad_debug_glVertex4iv = glad_debug_impl_glVertex4iv;
PFNGLEVALCOORD1FVPROC glad_glEvalCoord1fv;
void APIENTRY glad_debug_impl_glEvalCoord1fv(const GLfloat * arg0) {    
    _pre_call_callback("glEvalCoord1fv", (void*)glEvalCoord1fv, 1, arg0);
     glad_glEvalCoord1fv(arg0);
    _post_call_callback("glEvalCoord1fv", (void*)glEvalCoord1fv, 1, arg0);
    
}
PFNGLEVALCOORD1FVPROC glad_debug_glEvalCoord1fv = glad_debug_impl_glEvalCoord1fv;
PFNGLWINDOWPOS2SVPROC glad_glWindowPos2sv;
void APIENTRY glad_debug_impl_glWindowPos2sv(const GLshort * arg0) {    
    _pre_call_callback("glWindowPos2sv", (void*)glWindowPos2sv, 1, arg0);
     glad_glWindowPos2sv(arg0);
    _post_call_callback("glWindowPos2sv", (void*)glWindowPos2sv, 1, arg0);
    
}
PFNGLWINDOWPOS2SVPROC glad_debug_glWindowPos2sv = glad_debug_impl_glWindowPos2sv;
PFNGLCREATESHADERPROC glad_glCreateShader;
GLuint APIENTRY glad_debug_impl_glCreateShader(GLenum arg0) {    
    GLuint ret;
    _pre_call_callback("glCreateShader", (void*)glCreateShader, 1, arg0);
    ret =  glad_glCreateShader(arg0);
    _post_call_callback("glCreateShader", (void*)glCreateShader, 1, arg0);
    return ret;
}
PFNGLCREATESHADERPROC glad_debug_glCreateShader = glad_debug_impl_glCreateShader;
PFNGLISBUFFERPROC glad_glIsBuffer;
GLboolean APIENTRY glad_debug_impl_glIsBuffer(GLuint arg0) {    
    GLboolean ret;
    _pre_call_callback("glIsBuffer", (void*)glIsBuffer, 1, arg0);
    ret =  glad_glIsBuffer(arg0);
    _post_call_callback("glIsBuffer", (void*)glIsBuffer, 1, arg0);
    return ret;
}
PFNGLISBUFFERPROC glad_debug_glIsBuffer = glad_debug_impl_glIsBuffer;
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("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("glCopyTexSubImage2D", (void*)glCopyTexSubImage2D, 8, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
    
}
PFNGLCOPYTEXSUBIMAGE2DPROC glad_debug_glCopyTexSubImage2D = glad_debug_impl_glCopyTexSubImage2D;
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("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("glCompressedTexImage2D", (void*)glCompressedTexImage2D, 8, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
    
}
PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_debug_glCompressedTexImage2D = glad_debug_impl_glCompressedTexImage2D;
PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f;
void APIENTRY glad_debug_impl_glVertexAttrib1f(GLuint arg0, GLfloat arg1) {    
    _pre_call_callback("glVertexAttrib1f", (void*)glVertexAttrib1f, 2, arg0, arg1);
     glad_glVertexAttrib1f(arg0, arg1);
    _post_call_callback("glVertexAttrib1f", (void*)glVertexAttrib1f, 2, arg0, arg1);
    
}
PFNGLVERTEXATTRIB1FPROC glad_debug_glVertexAttrib1f = glad_debug_impl_glVertexAttrib1f;
PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate;
void APIENTRY glad_debug_impl_glBlendFuncSeparate(GLenum arg0, GLenum arg1, GLenum arg2, GLenum arg3) {    
    _pre_call_callback("glBlendFuncSeparate", (void*)glBlendFuncSeparate, 4, arg0, arg1, arg2, arg3);
     glad_glBlendFuncSeparate(arg0, arg1, arg2, arg3);
    _post_call_callback("glBlendFuncSeparate", (void*)glBlendFuncSeparate, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLBLENDFUNCSEPARATEPROC glad_debug_glBlendFuncSeparate = glad_debug_impl_glBlendFuncSeparate;
PFNGLVERTEX4FVPROC glad_glVertex4fv;
void APIENTRY glad_debug_impl_glVertex4fv(const GLfloat * arg0) {    
    _pre_call_callback("glVertex4fv", (void*)glVertex4fv, 1, arg0);
     glad_glVertex4fv(arg0);
    _post_call_callback("glVertex4fv", (void*)glVertex4fv, 1, arg0);
    
}
PFNGLVERTEX4FVPROC glad_debug_glVertex4fv = glad_debug_impl_glVertex4fv;
PFNGLBINDTEXTUREPROC glad_glBindTexture;
void APIENTRY glad_debug_impl_glBindTexture(GLenum arg0, GLuint arg1) {    
    _pre_call_callback("glBindTexture", (void*)glBindTexture, 2, arg0, arg1);
     glad_glBindTexture(arg0, arg1);
    _post_call_callback("glBindTexture", (void*)glBindTexture, 2, arg0, arg1);
    
}
PFNGLBINDTEXTUREPROC glad_debug_glBindTexture = glad_debug_impl_glBindTexture;
PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s;
void APIENTRY glad_debug_impl_glVertexAttrib1s(GLuint arg0, GLshort arg1) {    
    _pre_call_callback("glVertexAttrib1s", (void*)glVertexAttrib1s, 2, arg0, arg1);
     glad_glVertexAttrib1s(arg0, arg1);
    _post_call_callback("glVertexAttrib1s", (void*)glVertexAttrib1s, 2, arg0, arg1);
    
}
PFNGLVERTEXATTRIB1SPROC glad_debug_glVertexAttrib1s = glad_debug_impl_glVertexAttrib1s;
PFNGLTEXCOORD2FVPROC glad_glTexCoord2fv;
void APIENTRY glad_debug_impl_glTexCoord2fv(const GLfloat * arg0) {    
    _pre_call_callback("glTexCoord2fv", (void*)glTexCoord2fv, 1, arg0);
     glad_glTexCoord2fv(arg0);
    _post_call_callback("glTexCoord2fv", (void*)glTexCoord2fv, 1, arg0);
    
}
PFNGLTEXCOORD2FVPROC glad_debug_glTexCoord2fv = glad_debug_impl_glTexCoord2fv;
PFNGLTEXCOORD4FVPROC glad_glTexCoord4fv;
void APIENTRY glad_debug_impl_glTexCoord4fv(const GLfloat * arg0) {    
    _pre_call_callback("glTexCoord4fv", (void*)glTexCoord4fv, 1, arg0);
     glad_glTexCoord4fv(arg0);
    _post_call_callback("glTexCoord4fv", (void*)glTexCoord4fv, 1, arg0);
    
}
PFNGLTEXCOORD4FVPROC glad_debug_glTexCoord4fv = glad_debug_impl_glTexCoord4fv;
PFNGLPOINTSIZEPROC glad_glPointSize;
void APIENTRY glad_debug_impl_glPointSize(GLfloat arg0) {    
    _pre_call_callback("glPointSize", (void*)glPointSize, 1, arg0);
     glad_glPointSize(arg0);
    _post_call_callback("glPointSize", (void*)glPointSize, 1, arg0);
    
}
PFNGLPOINTSIZEPROC glad_debug_glPointSize = glad_debug_impl_glPointSize;
PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv;
void APIENTRY glad_debug_impl_glVertexAttrib2dv(GLuint arg0, const GLdouble * arg1) {    
    _pre_call_callback("glVertexAttrib2dv", (void*)glVertexAttrib2dv, 2, arg0, arg1);
     glad_glVertexAttrib2dv(arg0, arg1);
    _post_call_callback("glVertexAttrib2dv", (void*)glVertexAttrib2dv, 2, arg0, arg1);
    
}
PFNGLVERTEXATTRIB2DVPROC glad_debug_glVertexAttrib2dv = glad_debug_impl_glVertexAttrib2dv;
PFNGLDELETEPROGRAMPROC glad_glDeleteProgram;
void APIENTRY glad_debug_impl_glDeleteProgram(GLuint arg0) {    
    _pre_call_callback("glDeleteProgram", (void*)glDeleteProgram, 1, arg0);
     glad_glDeleteProgram(arg0);
    _post_call_callback("glDeleteProgram", (void*)glDeleteProgram, 1, arg0);
    
}
PFNGLDELETEPROGRAMPROC glad_debug_glDeleteProgram = glad_debug_impl_glDeleteProgram;
PFNGLCOLOR4BVPROC glad_glColor4bv;
void APIENTRY glad_debug_impl_glColor4bv(const GLbyte * arg0) {    
    _pre_call_callback("glColor4bv", (void*)glColor4bv, 1, arg0);
     glad_glColor4bv(arg0);
    _post_call_callback("glColor4bv", (void*)glColor4bv, 1, arg0);
    
}
PFNGLCOLOR4BVPROC glad_debug_glColor4bv = glad_debug_impl_glColor4bv;
PFNGLRASTERPOS2FPROC glad_glRasterPos2f;
void APIENTRY glad_debug_impl_glRasterPos2f(GLfloat arg0, GLfloat arg1) {    
    _pre_call_callback("glRasterPos2f", (void*)glRasterPos2f, 2, arg0, arg1);
     glad_glRasterPos2f(arg0, arg1);
    _post_call_callback("glRasterPos2f", (void*)glRasterPos2f, 2, arg0, arg1);
    
}
PFNGLRASTERPOS2FPROC glad_debug_glRasterPos2f = glad_debug_impl_glRasterPos2f;
PFNGLRASTERPOS2DPROC glad_glRasterPos2d;
void APIENTRY glad_debug_impl_glRasterPos2d(GLdouble arg0, GLdouble arg1) {    
    _pre_call_callback("glRasterPos2d", (void*)glRasterPos2d, 2, arg0, arg1);
     glad_glRasterPos2d(arg0, arg1);
    _post_call_callback("glRasterPos2d", (void*)glRasterPos2d, 2, arg0, arg1);
    
}
PFNGLRASTERPOS2DPROC glad_debug_glRasterPos2d = glad_debug_impl_glRasterPos2d;
PFNGLLOADIDENTITYPROC glad_glLoadIdentity;
void APIENTRY glad_debug_impl_glLoadIdentity(void) {    
    _pre_call_callback("glLoadIdentity", (void*)glLoadIdentity, 0);
     glad_glLoadIdentity();
    _post_call_callback("glLoadIdentity", (void*)glLoadIdentity, 0);
    
}
PFNGLLOADIDENTITYPROC glad_debug_glLoadIdentity = glad_debug_impl_glLoadIdentity;
PFNGLRASTERPOS2IPROC glad_glRasterPos2i;
void APIENTRY glad_debug_impl_glRasterPos2i(GLint arg0, GLint arg1) {    
    _pre_call_callback("glRasterPos2i", (void*)glRasterPos2i, 2, arg0, arg1);
     glad_glRasterPos2i(arg0, arg1);
    _post_call_callback("glRasterPos2i", (void*)glRasterPos2i, 2, arg0, arg1);
    
}
PFNGLRASTERPOS2IPROC glad_debug_glRasterPos2i = glad_debug_impl_glRasterPos2i;
PFNGLCOLOR3BPROC glad_glColor3b;
void APIENTRY glad_debug_impl_glColor3b(GLbyte arg0, GLbyte arg1, GLbyte arg2) {    
    _pre_call_callback("glColor3b", (void*)glColor3b, 3, arg0, arg1, arg2);
     glad_glColor3b(arg0, arg1, arg2);
    _post_call_callback("glColor3b", (void*)glColor3b, 3, arg0, arg1, arg2);
    
}
PFNGLCOLOR3BPROC glad_debug_glColor3b = glad_debug_impl_glColor3b;
PFNGLEDGEFLAGPROC glad_glEdgeFlag;
void APIENTRY glad_debug_impl_glEdgeFlag(GLboolean arg0) {    
    _pre_call_callback("glEdgeFlag", (void*)glEdgeFlag, 1, arg0);
     glad_glEdgeFlag(arg0);
    _post_call_callback("glEdgeFlag", (void*)glEdgeFlag, 1, arg0);
    
}
PFNGLEDGEFLAGPROC glad_debug_glEdgeFlag = glad_debug_impl_glEdgeFlag;
PFNGLVERTEX3DPROC glad_glVertex3d;
void APIENTRY glad_debug_impl_glVertex3d(GLdouble arg0, GLdouble arg1, GLdouble arg2) {    
    _pre_call_callback("glVertex3d", (void*)glVertex3d, 3, arg0, arg1, arg2);
     glad_glVertex3d(arg0, arg1, arg2);
    _post_call_callback("glVertex3d", (void*)glVertex3d, 3, arg0, arg1, arg2);
    
}
PFNGLVERTEX3DPROC glad_debug_glVertex3d = glad_debug_impl_glVertex3d;
PFNGLVERTEX3FPROC glad_glVertex3f;
void APIENTRY glad_debug_impl_glVertex3f(GLfloat arg0, GLfloat arg1, GLfloat arg2) {    
    _pre_call_callback("glVertex3f", (void*)glVertex3f, 3, arg0, arg1, arg2);
     glad_glVertex3f(arg0, arg1, arg2);
    _post_call_callback("glVertex3f", (void*)glVertex3f, 3, arg0, arg1, arg2);
    
}
PFNGLVERTEX3FPROC glad_debug_glVertex3f = glad_debug_impl_glVertex3f;
PFNGLVERTEX3IPROC glad_glVertex3i;
void APIENTRY glad_debug_impl_glVertex3i(GLint arg0, GLint arg1, GLint arg2) {    
    _pre_call_callback("glVertex3i", (void*)glVertex3i, 3, arg0, arg1, arg2);
     glad_glVertex3i(arg0, arg1, arg2);
    _post_call_callback("glVertex3i", (void*)glVertex3i, 3, arg0, arg1, arg2);
    
}
PFNGLVERTEX3IPROC glad_debug_glVertex3i = glad_debug_impl_glVertex3i;
PFNGLCOLOR3IPROC glad_glColor3i;
void APIENTRY glad_debug_impl_glColor3i(GLint arg0, GLint arg1, GLint arg2) {    
    _pre_call_callback("glColor3i", (void*)glColor3i, 3, arg0, arg1, arg2);
     glad_glColor3i(arg0, arg1, arg2);
    _post_call_callback("glColor3i", (void*)glColor3i, 3, arg0, arg1, arg2);
    
}
PFNGLCOLOR3IPROC glad_debug_glColor3i = glad_debug_impl_glColor3i;
PFNGLUNIFORM3FPROC glad_glUniform3f;
void APIENTRY glad_debug_impl_glUniform3f(GLint arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3) {    
    _pre_call_callback("glUniform3f", (void*)glUniform3f, 4, arg0, arg1, arg2, arg3);
     glad_glUniform3f(arg0, arg1, arg2, arg3);
    _post_call_callback("glUniform3f", (void*)glUniform3f, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLUNIFORM3FPROC glad_debug_glUniform3f = glad_debug_impl_glUniform3f;
PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv;
void APIENTRY glad_debug_impl_glVertexAttrib4ubv(GLuint arg0, const GLubyte * arg1) {    
    _pre_call_callback("glVertexAttrib4ubv", (void*)glVertexAttrib4ubv, 2, arg0, arg1);
     glad_glVertexAttrib4ubv(arg0, arg1);
    _post_call_callback("glVertexAttrib4ubv", (void*)glVertexAttrib4ubv, 2, arg0, arg1);
    
}
PFNGLVERTEXATTRIB4UBVPROC glad_debug_glVertexAttrib4ubv = glad_debug_impl_glVertexAttrib4ubv;
PFNGLCOLOR3SPROC glad_glColor3s;
void APIENTRY glad_debug_impl_glColor3s(GLshort arg0, GLshort arg1, GLshort arg2) {    
    _pre_call_callback("glColor3s", (void*)glColor3s, 3, arg0, arg1, arg2);
     glad_glColor3s(arg0, arg1, arg2);
    _post_call_callback("glColor3s", (void*)glColor3s, 3, arg0, arg1, arg2);
    
}
PFNGLCOLOR3SPROC glad_debug_glColor3s = glad_debug_impl_glColor3s;
PFNGLVERTEX3SPROC glad_glVertex3s;
void APIENTRY glad_debug_impl_glVertex3s(GLshort arg0, GLshort arg1, GLshort arg2) {    
    _pre_call_callback("glVertex3s", (void*)glVertex3s, 3, arg0, arg1, arg2);
     glad_glVertex3s(arg0, arg1, arg2);
    _post_call_callback("glVertex3s", (void*)glVertex3s, 3, arg0, arg1, arg2);
    
}
PFNGLVERTEX3SPROC glad_debug_glVertex3s = glad_debug_impl_glVertex3s;
PFNGLTEXCOORD1IVPROC glad_glTexCoord1iv;
void APIENTRY glad_debug_impl_glTexCoord1iv(const GLint * arg0) {    
    _pre_call_callback("glTexCoord1iv", (void*)glTexCoord1iv, 1, arg0);
     glad_glTexCoord1iv(arg0);
    _post_call_callback("glTexCoord1iv", (void*)glTexCoord1iv, 1, arg0);
    
}
PFNGLTEXCOORD1IVPROC glad_debug_glTexCoord1iv = glad_debug_impl_glTexCoord1iv;
PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f;
void APIENTRY glad_debug_impl_glVertexAttrib3f(GLuint arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3) {    
    _pre_call_callback("glVertexAttrib3f", (void*)glVertexAttrib3f, 4, arg0, arg1, arg2, arg3);
     glad_glVertexAttrib3f(arg0, arg1, arg2, arg3);
    _post_call_callback("glVertexAttrib3f", (void*)glVertexAttrib3f, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLVERTEXATTRIB3FPROC glad_debug_glVertexAttrib3f = glad_debug_impl_glVertexAttrib3f;
PFNGLVERTEX2IVPROC glad_glVertex2iv;
void APIENTRY glad_debug_impl_glVertex2iv(const GLint * arg0) {    
    _pre_call_callback("glVertex2iv", (void*)glVertex2iv, 1, arg0);
     glad_glVertex2iv(arg0);
    _post_call_callback("glVertex2iv", (void*)glVertex2iv, 1, arg0);
    
}
PFNGLVERTEX2IVPROC glad_debug_glVertex2iv = glad_debug_impl_glVertex2iv;
PFNGLCOLOR3SVPROC glad_glColor3sv;
void APIENTRY glad_debug_impl_glColor3sv(const GLshort * arg0) {    
    _pre_call_callback("glColor3sv", (void*)glColor3sv, 1, arg0);
     glad_glColor3sv(arg0);
    _post_call_callback("glColor3sv", (void*)glColor3sv, 1, arg0);
    
}
PFNGLCOLOR3SVPROC glad_debug_glColor3sv = glad_debug_impl_glColor3sv;
PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv;
void APIENTRY glad_debug_impl_glGetVertexAttribdv(GLuint arg0, GLenum arg1, GLdouble * arg2) {    
    _pre_call_callback("glGetVertexAttribdv", (void*)glGetVertexAttribdv, 3, arg0, arg1, arg2);
     glad_glGetVertexAttribdv(arg0, arg1, arg2);
    _post_call_callback("glGetVertexAttribdv", (void*)glGetVertexAttribdv, 3, arg0, arg1, arg2);
    
}
PFNGLGETVERTEXATTRIBDVPROC glad_debug_glGetVertexAttribdv = glad_debug_impl_glGetVertexAttribdv;
PFNGLNORMALPOINTERPROC glad_glNormalPointer;
void APIENTRY glad_debug_impl_glNormalPointer(GLenum arg0, GLsizei arg1, const void * arg2) {    
    _pre_call_callback("glNormalPointer", (void*)glNormalPointer, 3, arg0, arg1, arg2);
     glad_glNormalPointer(arg0, arg1, arg2);
    _post_call_callback("glNormalPointer", (void*)glNormalPointer, 3, arg0, arg1, arg2);
    
}
PFNGLNORMALPOINTERPROC glad_debug_glNormalPointer = glad_debug_impl_glNormalPointer;
PFNGLVERTEX4SVPROC glad_glVertex4sv;
void APIENTRY glad_debug_impl_glVertex4sv(const GLshort * arg0) {    
    _pre_call_callback("glVertex4sv", (void*)glVertex4sv, 1, arg0);
     glad_glVertex4sv(arg0);
    _post_call_callback("glVertex4sv", (void*)glVertex4sv, 1, arg0);
    
}
PFNGLVERTEX4SVPROC glad_debug_glVertex4sv = glad_debug_impl_glVertex4sv;
PFNGLPASSTHROUGHPROC glad_glPassThrough;
void APIENTRY glad_debug_impl_glPassThrough(GLfloat arg0) {    
    _pre_call_callback("glPassThrough", (void*)glPassThrough, 1, arg0);
     glad_glPassThrough(arg0);
    _post_call_callback("glPassThrough", (void*)glPassThrough, 1, arg0);
    
}
PFNGLPASSTHROUGHPROC glad_debug_glPassThrough = glad_debug_impl_glPassThrough;
PFNGLFOGIPROC glad_glFogi;
void APIENTRY glad_debug_impl_glFogi(GLenum arg0, GLint arg1) {    
    _pre_call_callback("glFogi", (void*)glFogi, 2, arg0, arg1);
     glad_glFogi(arg0, arg1);
    _post_call_callback("glFogi", (void*)glFogi, 2, arg0, arg1);
    
}
PFNGLFOGIPROC glad_debug_glFogi = glad_debug_impl_glFogi;
PFNGLBEGINPROC glad_glBegin;
void APIENTRY glad_debug_impl_glBegin(GLenum arg0) {    
    _pre_call_callback("glBegin", (void*)glBegin, 1, arg0);
     glad_glBegin(arg0);
    _post_call_callback("glBegin", (void*)glBegin, 1, arg0);
    
}
PFNGLBEGINPROC glad_debug_glBegin = glad_debug_impl_glBegin;
PFNGLEVALCOORD2DVPROC glad_glEvalCoord2dv;
void APIENTRY glad_debug_impl_glEvalCoord2dv(const GLdouble * arg0) {    
    _pre_call_callback("glEvalCoord2dv", (void*)glEvalCoord2dv, 1, arg0);
     glad_glEvalCoord2dv(arg0);
    _post_call_callback("glEvalCoord2dv", (void*)glEvalCoord2dv, 1, arg0);
    
}
PFNGLEVALCOORD2DVPROC glad_debug_glEvalCoord2dv = glad_debug_impl_glEvalCoord2dv;
PFNGLCOLOR3UBVPROC glad_glColor3ubv;
void APIENTRY glad_debug_impl_glColor3ubv(const GLubyte * arg0) {    
    _pre_call_callback("glColor3ubv", (void*)glColor3ubv, 1, arg0);
     glad_glColor3ubv(arg0);
    _post_call_callback("glColor3ubv", (void*)glColor3ubv, 1, arg0);
    
}
PFNGLCOLOR3UBVPROC glad_debug_glColor3ubv = glad_debug_impl_glColor3ubv;
PFNGLVERTEXPOINTERPROC glad_glVertexPointer;
void APIENTRY glad_debug_impl_glVertexPointer(GLint arg0, GLenum arg1, GLsizei arg2, const void * arg3) {    
    _pre_call_callback("glVertexPointer", (void*)glVertexPointer, 4, arg0, arg1, arg2, arg3);
     glad_glVertexPointer(arg0, arg1, arg2, arg3);
    _post_call_callback("glVertexPointer", (void*)glVertexPointer, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLVERTEXPOINTERPROC glad_debug_glVertexPointer = glad_debug_impl_glVertexPointer;
PFNGLSECONDARYCOLOR3UIVPROC glad_glSecondaryColor3uiv;
void APIENTRY glad_debug_impl_glSecondaryColor3uiv(const GLuint * arg0) {    
    _pre_call_callback("glSecondaryColor3uiv", (void*)glSecondaryColor3uiv, 1, arg0);
     glad_glSecondaryColor3uiv(arg0);
    _post_call_callback("glSecondaryColor3uiv", (void*)glSecondaryColor3uiv, 1, arg0);
    
}
PFNGLSECONDARYCOLOR3UIVPROC glad_debug_glSecondaryColor3uiv = glad_debug_impl_glSecondaryColor3uiv;
PFNGLDRAWARRAYSPROC glad_glDrawArrays;
void APIENTRY glad_debug_impl_glDrawArrays(GLenum arg0, GLint arg1, GLsizei arg2) {    
    _pre_call_callback("glDrawArrays", (void*)glDrawArrays, 3, arg0, arg1, arg2);
     glad_glDrawArrays(arg0, arg1, arg2);
    _post_call_callback("glDrawArrays", (void*)glDrawArrays, 3, arg0, arg1, arg2);
    
}
PFNGLDRAWARRAYSPROC glad_debug_glDrawArrays = glad_debug_impl_glDrawArrays;
PFNGLMULTITEXCOORD1DPROC glad_glMultiTexCoord1d;
void APIENTRY glad_debug_impl_glMultiTexCoord1d(GLenum arg0, GLdouble arg1) {    
    _pre_call_callback("glMultiTexCoord1d", (void*)glMultiTexCoord1d, 2, arg0, arg1);
     glad_glMultiTexCoord1d(arg0, arg1);
    _post_call_callback("glMultiTexCoord1d", (void*)glMultiTexCoord1d, 2, arg0, arg1);
    
}
PFNGLMULTITEXCOORD1DPROC glad_debug_glMultiTexCoord1d = glad_debug_impl_glMultiTexCoord1d;
PFNGLMULTITEXCOORD1FPROC glad_glMultiTexCoord1f;
void APIENTRY glad_debug_impl_glMultiTexCoord1f(GLenum arg0, GLfloat arg1) {    
    _pre_call_callback("glMultiTexCoord1f", (void*)glMultiTexCoord1f, 2, arg0, arg1);
     glad_glMultiTexCoord1f(arg0, arg1);
    _post_call_callback("glMultiTexCoord1f", (void*)glMultiTexCoord1f, 2, arg0, arg1);
    
}
PFNGLMULTITEXCOORD1FPROC glad_debug_glMultiTexCoord1f = glad_debug_impl_glMultiTexCoord1f;
PFNGLLIGHTFVPROC glad_glLightfv;
void APIENTRY glad_debug_impl_glLightfv(GLenum arg0, GLenum arg1, const GLfloat * arg2) {    
    _pre_call_callback("glLightfv", (void*)glLightfv, 3, arg0, arg1, arg2);
     glad_glLightfv(arg0, arg1, arg2);
    _post_call_callback("glLightfv", (void*)glLightfv, 3, arg0, arg1, arg2);
    
}
PFNGLLIGHTFVPROC glad_debug_glLightfv = glad_debug_impl_glLightfv;
PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d;
void APIENTRY glad_debug_impl_glVertexAttrib3d(GLuint arg0, GLdouble arg1, GLdouble arg2, GLdouble arg3) {    
    _pre_call_callback("glVertexAttrib3d", (void*)glVertexAttrib3d, 4, arg0, arg1, arg2, arg3);
     glad_glVertexAttrib3d(arg0, arg1, arg2, arg3);
    _post_call_callback("glVertexAttrib3d", (void*)glVertexAttrib3d, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLVERTEXATTRIB3DPROC glad_debug_glVertexAttrib3d = glad_debug_impl_glVertexAttrib3d;
PFNGLCLEARPROC glad_glClear;
void APIENTRY glad_debug_impl_glClear(GLbitfield arg0) {    
    _pre_call_callback("glClear", (void*)glClear, 1, arg0);
     glad_glClear(arg0);
    _post_call_callback("glClear", (void*)glClear, 1, arg0);
    
}
PFNGLCLEARPROC glad_debug_glClear = glad_debug_impl_glClear;
PFNGLMULTITEXCOORD1IPROC glad_glMultiTexCoord1i;
void APIENTRY glad_debug_impl_glMultiTexCoord1i(GLenum arg0, GLint arg1) {    
    _pre_call_callback("glMultiTexCoord1i", (void*)glMultiTexCoord1i, 2, arg0, arg1);
     glad_glMultiTexCoord1i(arg0, arg1);
    _post_call_callback("glMultiTexCoord1i", (void*)glMultiTexCoord1i, 2, arg0, arg1);
    
}
PFNGLMULTITEXCOORD1IPROC glad_debug_glMultiTexCoord1i = glad_debug_impl_glMultiTexCoord1i;
PFNGLMULTITEXCOORD1SPROC glad_glMultiTexCoord1s;
void APIENTRY glad_debug_impl_glMultiTexCoord1s(GLenum arg0, GLshort arg1) {    
    _pre_call_callback("glMultiTexCoord1s", (void*)glMultiTexCoord1s, 2, arg0, arg1);
     glad_glMultiTexCoord1s(arg0, arg1);
    _post_call_callback("glMultiTexCoord1s", (void*)glMultiTexCoord1s, 2, arg0, arg1);
    
}
PFNGLMULTITEXCOORD1SPROC glad_debug_glMultiTexCoord1s = glad_debug_impl_glMultiTexCoord1s;
PFNGLISENABLEDPROC glad_glIsEnabled;
GLboolean APIENTRY glad_debug_impl_glIsEnabled(GLenum arg0) {    
    GLboolean ret;
    _pre_call_callback("glIsEnabled", (void*)glIsEnabled, 1, arg0);
    ret =  glad_glIsEnabled(arg0);
    _post_call_callback("glIsEnabled", (void*)glIsEnabled, 1, arg0);
    return ret;
}
PFNGLISENABLEDPROC glad_debug_glIsEnabled = glad_debug_impl_glIsEnabled;
PFNGLSTENCILOPPROC glad_glStencilOp;
void APIENTRY glad_debug_impl_glStencilOp(GLenum arg0, GLenum arg1, GLenum arg2) {    
    _pre_call_callback("glStencilOp", (void*)glStencilOp, 3, arg0, arg1, arg2);
     glad_glStencilOp(arg0, arg1, arg2);
    _post_call_callback("glStencilOp", (void*)glStencilOp, 3, arg0, arg1, arg2);
    
}
PFNGLSTENCILOPPROC glad_debug_glStencilOp = glad_debug_impl_glStencilOp;
PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv;
void APIENTRY glad_debug_impl_glGetQueryObjectuiv(GLuint arg0, GLenum arg1, GLuint * arg2) {    
    _pre_call_callback("glGetQueryObjectuiv", (void*)glGetQueryObjectuiv, 3, arg0, arg1, arg2);
     glad_glGetQueryObjectuiv(arg0, arg1, arg2);
    _post_call_callback("glGetQueryObjectuiv", (void*)glGetQueryObjectuiv, 3, arg0, arg1, arg2);
    
}
PFNGLGETQUERYOBJECTUIVPROC glad_debug_glGetQueryObjectuiv = glad_debug_impl_glGetQueryObjectuiv;
PFNGLTRANSLATEFPROC glad_glTranslatef;
void APIENTRY glad_debug_impl_glTranslatef(GLfloat arg0, GLfloat arg1, GLfloat arg2) {    
    _pre_call_callback("glTranslatef", (void*)glTranslatef, 3, arg0, arg1, arg2);
     glad_glTranslatef(arg0, arg1, arg2);
    _post_call_callback("glTranslatef", (void*)glTranslatef, 3, arg0, arg1, arg2);
    
}
PFNGLTRANSLATEFPROC glad_debug_glTranslatef = glad_debug_impl_glTranslatef;
PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub;
void APIENTRY glad_debug_impl_glVertexAttrib4Nub(GLuint arg0, GLubyte arg1, GLubyte arg2, GLubyte arg3, GLubyte arg4) {    
    _pre_call_callback("glVertexAttrib4Nub", (void*)glVertexAttrib4Nub, 5, arg0, arg1, arg2, arg3, arg4);
     glad_glVertexAttrib4Nub(arg0, arg1, arg2, arg3, arg4);
    _post_call_callback("glVertexAttrib4Nub", (void*)glVertexAttrib4Nub, 5, arg0, arg1, arg2, arg3, arg4);
    
}
PFNGLVERTEXATTRIB4NUBPROC glad_debug_glVertexAttrib4Nub = glad_debug_impl_glVertexAttrib4Nub;
PFNGLTRANSLATEDPROC glad_glTranslated;
void APIENTRY glad_debug_impl_glTranslated(GLdouble arg0, GLdouble arg1, GLdouble arg2) {    
    _pre_call_callback("glTranslated", (void*)glTranslated, 3, arg0, arg1, arg2);
     glad_glTranslated(arg0, arg1, arg2);
    _post_call_callback("glTranslated", (void*)glTranslated, 3, arg0, arg1, arg2);
    
}
PFNGLTRANSLATEDPROC glad_debug_glTranslated = glad_debug_impl_glTranslated;
PFNGLTEXCOORD3SVPROC glad_glTexCoord3sv;
void APIENTRY glad_debug_impl_glTexCoord3sv(const GLshort * arg0) {    
    _pre_call_callback("glTexCoord3sv", (void*)glTexCoord3sv, 1, arg0);
     glad_glTexCoord3sv(arg0);
    _post_call_callback("glTexCoord3sv", (void*)glTexCoord3sv, 1, arg0);
    
}
PFNGLTEXCOORD3SVPROC glad_debug_glTexCoord3sv = glad_debug_impl_glTexCoord3sv;
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("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("glTexImage1D", (void*)glTexImage1D, 8, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
    
}
PFNGLTEXIMAGE1DPROC glad_debug_glTexImage1D = glad_debug_impl_glTexImage1D;
PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv;
void APIENTRY glad_debug_impl_glTexParameteriv(GLenum arg0, GLenum arg1, const GLint * arg2) {    
    _pre_call_callback("glTexParameteriv", (void*)glTexParameteriv, 3, arg0, arg1, arg2);
     glad_glTexParameteriv(arg0, arg1, arg2);
    _post_call_callback("glTexParameteriv", (void*)glTexParameteriv, 3, arg0, arg1, arg2);
    
}
PFNGLTEXPARAMETERIVPROC glad_debug_glTexParameteriv = glad_debug_impl_glTexParameteriv;
PFNGLSECONDARYCOLOR3BVPROC glad_glSecondaryColor3bv;
void APIENTRY glad_debug_impl_glSecondaryColor3bv(const GLbyte * arg0) {    
    _pre_call_callback("glSecondaryColor3bv", (void*)glSecondaryColor3bv, 1, arg0);
     glad_glSecondaryColor3bv(arg0);
    _post_call_callback("glSecondaryColor3bv", (void*)glSecondaryColor3bv, 1, arg0);
    
}
PFNGLSECONDARYCOLOR3BVPROC glad_debug_glSecondaryColor3bv = glad_debug_impl_glSecondaryColor3bv;
PFNGLGETMATERIALFVPROC glad_glGetMaterialfv;
void APIENTRY glad_debug_impl_glGetMaterialfv(GLenum arg0, GLenum arg1, GLfloat * arg2) {    
    _pre_call_callback("glGetMaterialfv", (void*)glGetMaterialfv, 3, arg0, arg1, arg2);
     glad_glGetMaterialfv(arg0, arg1, arg2);
    _post_call_callback("glGetMaterialfv", (void*)glGetMaterialfv, 3, arg0, arg1, arg2);
    
}
PFNGLGETMATERIALFVPROC glad_debug_glGetMaterialfv = glad_debug_impl_glGetMaterialfv;
PFNGLGETTEXIMAGEPROC glad_glGetTexImage;
void APIENTRY glad_debug_impl_glGetTexImage(GLenum arg0, GLint arg1, GLenum arg2, GLenum arg3, void * arg4) {    
    _pre_call_callback("glGetTexImage", (void*)glGetTexImage, 5, arg0, arg1, arg2, arg3, arg4);
     glad_glGetTexImage(arg0, arg1, arg2, arg3, arg4);
    _post_call_callback("glGetTexImage", (void*)glGetTexImage, 5, arg0, arg1, arg2, arg3, arg4);
    
}
PFNGLGETTEXIMAGEPROC glad_debug_glGetTexImage = glad_debug_impl_glGetTexImage;
PFNGLFOGCOORDFVPROC glad_glFogCoordfv;
void APIENTRY glad_debug_impl_glFogCoordfv(const GLfloat * arg0) {    
    _pre_call_callback("glFogCoordfv", (void*)glFogCoordfv, 1, arg0);
     glad_glFogCoordfv(arg0);
    _post_call_callback("glFogCoordfv", (void*)glFogCoordfv, 1, arg0);
    
}
PFNGLFOGCOORDFVPROC glad_debug_glFogCoordfv = glad_debug_impl_glFogCoordfv;
PFNGLPIXELMAPUIVPROC glad_glPixelMapuiv;
void APIENTRY glad_debug_impl_glPixelMapuiv(GLenum arg0, GLsizei arg1, const GLuint * arg2) {    
    _pre_call_callback("glPixelMapuiv", (void*)glPixelMapuiv, 3, arg0, arg1, arg2);
     glad_glPixelMapuiv(arg0, arg1, arg2);
    _post_call_callback("glPixelMapuiv", (void*)glPixelMapuiv, 3, arg0, arg1, arg2);
    
}
PFNGLPIXELMAPUIVPROC glad_debug_glPixelMapuiv = glad_debug_impl_glPixelMapuiv;
PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog;
void APIENTRY glad_debug_impl_glGetShaderInfoLog(GLuint arg0, GLsizei arg1, GLsizei * arg2, GLchar * arg3) {    
    _pre_call_callback("glGetShaderInfoLog", (void*)glGetShaderInfoLog, 4, arg0, arg1, arg2, arg3);
     glad_glGetShaderInfoLog(arg0, arg1, arg2, arg3);
    _post_call_callback("glGetShaderInfoLog", (void*)glGetShaderInfoLog, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLGETSHADERINFOLOGPROC glad_debug_glGetShaderInfoLog = glad_debug_impl_glGetShaderInfoLog;
PFNGLINDEXSVPROC glad_glIndexsv;
void APIENTRY glad_debug_impl_glIndexsv(const GLshort * arg0) {    
    _pre_call_callback("glIndexsv", (void*)glIndexsv, 1, arg0);
     glad_glIndexsv(arg0);
    _post_call_callback("glIndexsv", (void*)glIndexsv, 1, arg0);
    
}
PFNGLINDEXSVPROC glad_debug_glIndexsv = glad_debug_impl_glIndexsv;
PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders;
void APIENTRY glad_debug_impl_glGetAttachedShaders(GLuint arg0, GLsizei arg1, GLsizei * arg2, GLuint * arg3) {    
    _pre_call_callback("glGetAttachedShaders", (void*)glGetAttachedShaders, 4, arg0, arg1, arg2, arg3);
     glad_glGetAttachedShaders(arg0, arg1, arg2, arg3);
    _post_call_callback("glGetAttachedShaders", (void*)glGetAttachedShaders, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLGETATTACHEDSHADERSPROC glad_debug_glGetAttachedShaders = glad_debug_impl_glGetAttachedShaders;
PFNGLVERTEX3IVPROC glad_glVertex3iv;
void APIENTRY glad_debug_impl_glVertex3iv(const GLint * arg0) {    
    _pre_call_callback("glVertex3iv", (void*)glVertex3iv, 1, arg0);
     glad_glVertex3iv(arg0);
    _post_call_callback("glVertex3iv", (void*)glVertex3iv, 1, arg0);
    
}
PFNGLVERTEX3IVPROC glad_debug_glVertex3iv = glad_debug_impl_glVertex3iv;
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("glBitmap", (void*)glBitmap, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
     glad_glBitmap(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
    _post_call_callback("glBitmap", (void*)glBitmap, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
    
}
PFNGLBITMAPPROC glad_debug_glBitmap = glad_debug_impl_glBitmap;
PFNGLMATERIALIPROC glad_glMateriali;
void APIENTRY glad_debug_impl_glMateriali(GLenum arg0, GLenum arg1, GLint arg2) {    
    _pre_call_callback("glMateriali", (void*)glMateriali, 3, arg0, arg1, arg2);
     glad_glMateriali(arg0, arg1, arg2);
    _post_call_callback("glMateriali", (void*)glMateriali, 3, arg0, arg1, arg2);
    
}
PFNGLMATERIALIPROC glad_debug_glMateriali = glad_debug_impl_glMateriali;
PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray;
void APIENTRY glad_debug_impl_glDisableVertexAttribArray(GLuint arg0) {    
    _pre_call_callback("glDisableVertexAttribArray", (void*)glDisableVertexAttribArray, 1, arg0);
     glad_glDisableVertexAttribArray(arg0);
    _post_call_callback("glDisableVertexAttribArray", (void*)glDisableVertexAttribArray, 1, arg0);
    
}
PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_debug_glDisableVertexAttribArray = glad_debug_impl_glDisableVertexAttribArray;
PFNGLGETQUERYIVPROC glad_glGetQueryiv;
void APIENTRY glad_debug_impl_glGetQueryiv(GLenum arg0, GLenum arg1, GLint * arg2) {    
    _pre_call_callback("glGetQueryiv", (void*)glGetQueryiv, 3, arg0, arg1, arg2);
     glad_glGetQueryiv(arg0, arg1, arg2);
    _post_call_callback("glGetQueryiv", (void*)glGetQueryiv, 3, arg0, arg1, arg2);
    
}
PFNGLGETQUERYIVPROC glad_debug_glGetQueryiv = glad_debug_impl_glGetQueryiv;
PFNGLTEXCOORD4FPROC glad_glTexCoord4f;
void APIENTRY glad_debug_impl_glTexCoord4f(GLfloat arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3) {    
    _pre_call_callback("glTexCoord4f", (void*)glTexCoord4f, 4, arg0, arg1, arg2, arg3);
     glad_glTexCoord4f(arg0, arg1, arg2, arg3);
    _post_call_callback("glTexCoord4f", (void*)glTexCoord4f, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLTEXCOORD4FPROC glad_debug_glTexCoord4f = glad_debug_impl_glTexCoord4f;
PFNGLTEXCOORD4DPROC glad_glTexCoord4d;
void APIENTRY glad_debug_impl_glTexCoord4d(GLdouble arg0, GLdouble arg1, GLdouble arg2, GLdouble arg3) {    
    _pre_call_callback("glTexCoord4d", (void*)glTexCoord4d, 4, arg0, arg1, arg2, arg3);
     glad_glTexCoord4d(arg0, arg1, arg2, arg3);
    _post_call_callback("glTexCoord4d", (void*)glTexCoord4d, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLTEXCOORD4DPROC glad_debug_glTexCoord4d = glad_debug_impl_glTexCoord4d;
PFNGLTEXCOORD4IPROC glad_glTexCoord4i;
void APIENTRY glad_debug_impl_glTexCoord4i(GLint arg0, GLint arg1, GLint arg2, GLint arg3) {    
    _pre_call_callback("glTexCoord4i", (void*)glTexCoord4i, 4, arg0, arg1, arg2, arg3);
     glad_glTexCoord4i(arg0, arg1, arg2, arg3);
    _post_call_callback("glTexCoord4i", (void*)glTexCoord4i, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLTEXCOORD4IPROC glad_debug_glTexCoord4i = glad_debug_impl_glTexCoord4i;
PFNGLMATERIALFPROC glad_glMaterialf;
void APIENTRY glad_debug_impl_glMaterialf(GLenum arg0, GLenum arg1, GLfloat arg2) {    
    _pre_call_callback("glMaterialf", (void*)glMaterialf, 3, arg0, arg1, arg2);
     glad_glMaterialf(arg0, arg1, arg2);
    _post_call_callback("glMaterialf", (void*)glMaterialf, 3, arg0, arg1, arg2);
    
}
PFNGLMATERIALFPROC glad_debug_glMaterialf = glad_debug_impl_glMaterialf;
PFNGLTEXCOORD4SPROC glad_glTexCoord4s;
void APIENTRY glad_debug_impl_glTexCoord4s(GLshort arg0, GLshort arg1, GLshort arg2, GLshort arg3) {    
    _pre_call_callback("glTexCoord4s", (void*)glTexCoord4s, 4, arg0, arg1, arg2, arg3);
     glad_glTexCoord4s(arg0, arg1, arg2, arg3);
    _post_call_callback("glTexCoord4s", (void*)glTexCoord4s, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLTEXCOORD4SPROC glad_debug_glTexCoord4s = glad_debug_impl_glTexCoord4s;
PFNGLISSHADERPROC glad_glIsShader;
GLboolean APIENTRY glad_debug_impl_glIsShader(GLuint arg0) {    
    GLboolean ret;
    _pre_call_callback("glIsShader", (void*)glIsShader, 1, arg0);
    ret =  glad_glIsShader(arg0);
    _post_call_callback("glIsShader", (void*)glIsShader, 1, arg0);
    return ret;
}
PFNGLISSHADERPROC glad_debug_glIsShader = glad_debug_impl_glIsShader;
PFNGLMULTITEXCOORD2SPROC glad_glMultiTexCoord2s;
void APIENTRY glad_debug_impl_glMultiTexCoord2s(GLenum arg0, GLshort arg1, GLshort arg2) {    
    _pre_call_callback("glMultiTexCoord2s", (void*)glMultiTexCoord2s, 3, arg0, arg1, arg2);
     glad_glMultiTexCoord2s(arg0, arg1, arg2);
    _post_call_callback("glMultiTexCoord2s", (void*)glMultiTexCoord2s, 3, arg0, arg1, arg2);
    
}
PFNGLMULTITEXCOORD2SPROC glad_debug_glMultiTexCoord2s = glad_debug_impl_glMultiTexCoord2s;
PFNGLVERTEX3DVPROC glad_glVertex3dv;
void APIENTRY glad_debug_impl_glVertex3dv(const GLdouble * arg0) {    
    _pre_call_callback("glVertex3dv", (void*)glVertex3dv, 1, arg0);
     glad_glVertex3dv(arg0);
    _post_call_callback("glVertex3dv", (void*)glVertex3dv, 1, arg0);
    
}
PFNGLVERTEX3DVPROC glad_debug_glVertex3dv = glad_debug_impl_glVertex3dv;
PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv;
void APIENTRY glad_debug_impl_glPointParameteriv(GLenum arg0, const GLint * arg1) {    
    _pre_call_callback("glPointParameteriv", (void*)glPointParameteriv, 2, arg0, arg1);
     glad_glPointParameteriv(arg0, arg1);
    _post_call_callback("glPointParameteriv", (void*)glPointParameteriv, 2, arg0, arg1);
    
}
PFNGLPOINTPARAMETERIVPROC glad_debug_glPointParameteriv = glad_debug_impl_glPointParameteriv;
PFNGLENABLEPROC glad_glEnable;
void APIENTRY glad_debug_impl_glEnable(GLenum arg0) {    
    _pre_call_callback("glEnable", (void*)glEnable, 1, arg0);
     glad_glEnable(arg0);
    _post_call_callback("glEnable", (void*)glEnable, 1, arg0);
    
}
PFNGLENABLEPROC glad_debug_glEnable = glad_debug_impl_glEnable;
PFNGLCOLOR4FVPROC glad_glColor4fv;
void APIENTRY glad_debug_impl_glColor4fv(const GLfloat * arg0) {    
    _pre_call_callback("glColor4fv", (void*)glColor4fv, 1, arg0);
     glad_glColor4fv(arg0);
    _post_call_callback("glColor4fv", (void*)glColor4fv, 1, arg0);
    
}
PFNGLCOLOR4FVPROC glad_debug_glColor4fv = glad_debug_impl_glColor4fv;
PFNGLTEXCOORD1FVPROC glad_glTexCoord1fv;
void APIENTRY glad_debug_impl_glTexCoord1fv(const GLfloat * arg0) {    
    _pre_call_callback("glTexCoord1fv", (void*)glTexCoord1fv, 1, arg0);
     glad_glTexCoord1fv(arg0);
    _post_call_callback("glTexCoord1fv", (void*)glTexCoord1fv, 1, arg0);
    
}
PFNGLTEXCOORD1FVPROC glad_debug_glTexCoord1fv = glad_debug_impl_glTexCoord1fv;
PFNGLTEXCOORD2SVPROC glad_glTexCoord2sv;
void APIENTRY glad_debug_impl_glTexCoord2sv(const GLshort * arg0) {    
    _pre_call_callback("glTexCoord2sv", (void*)glTexCoord2sv, 1, arg0);
     glad_glTexCoord2sv(arg0);
    _post_call_callback("glTexCoord2sv", (void*)glTexCoord2sv, 1, arg0);
    
}
PFNGLTEXCOORD2SVPROC glad_debug_glTexCoord2sv = glad_debug_impl_glTexCoord2sv;
PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv;
void APIENTRY glad_debug_impl_glVertexAttrib4dv(GLuint arg0, const GLdouble * arg1) {    
    _pre_call_callback("glVertexAttrib4dv", (void*)glVertexAttrib4dv, 2, arg0, arg1);
     glad_glVertexAttrib4dv(arg0, arg1);
    _post_call_callback("glVertexAttrib4dv", (void*)glVertexAttrib4dv, 2, arg0, arg1);
    
}
PFNGLVERTEXATTRIB4DVPROC glad_debug_glVertexAttrib4dv = glad_debug_impl_glVertexAttrib4dv;
PFNGLMULTITEXCOORD1DVPROC glad_glMultiTexCoord1dv;
void APIENTRY glad_debug_impl_glMultiTexCoord1dv(GLenum arg0, const GLdouble * arg1) {    
    _pre_call_callback("glMultiTexCoord1dv", (void*)glMultiTexCoord1dv, 2, arg0, arg1);
     glad_glMultiTexCoord1dv(arg0, arg1);
    _post_call_callback("glMultiTexCoord1dv", (void*)glMultiTexCoord1dv, 2, arg0, arg1);
    
}
PFNGLMULTITEXCOORD1DVPROC glad_debug_glMultiTexCoord1dv = glad_debug_impl_glMultiTexCoord1dv;
PFNGLMULTITEXCOORD2IPROC glad_glMultiTexCoord2i;
void APIENTRY glad_debug_impl_glMultiTexCoord2i(GLenum arg0, GLint arg1, GLint arg2) {    
    _pre_call_callback("glMultiTexCoord2i", (void*)glMultiTexCoord2i, 3, arg0, arg1, arg2);
     glad_glMultiTexCoord2i(arg0, arg1, arg2);
    _post_call_callback("glMultiTexCoord2i", (void*)glMultiTexCoord2i, 3, arg0, arg1, arg2);
    
}
PFNGLMULTITEXCOORD2IPROC glad_debug_glMultiTexCoord2i = glad_debug_impl_glMultiTexCoord2i;
PFNGLTEXCOORD3FVPROC glad_glTexCoord3fv;
void APIENTRY glad_debug_impl_glTexCoord3fv(const GLfloat * arg0) {    
    _pre_call_callback("glTexCoord3fv", (void*)glTexCoord3fv, 1, arg0);
     glad_glTexCoord3fv(arg0);
    _post_call_callback("glTexCoord3fv", (void*)glTexCoord3fv, 1, arg0);
    
}
PFNGLTEXCOORD3FVPROC glad_debug_glTexCoord3fv = glad_debug_impl_glTexCoord3fv;
PFNGLSECONDARYCOLOR3USVPROC glad_glSecondaryColor3usv;
void APIENTRY glad_debug_impl_glSecondaryColor3usv(const GLushort * arg0) {    
    _pre_call_callback("glSecondaryColor3usv", (void*)glSecondaryColor3usv, 1, arg0);
     glad_glSecondaryColor3usv(arg0);
    _post_call_callback("glSecondaryColor3usv", (void*)glSecondaryColor3usv, 1, arg0);
    
}
PFNGLSECONDARYCOLOR3USVPROC glad_debug_glSecondaryColor3usv = glad_debug_impl_glSecondaryColor3usv;
PFNGLTEXGENFPROC glad_glTexGenf;
void APIENTRY glad_debug_impl_glTexGenf(GLenum arg0, GLenum arg1, GLfloat arg2) {    
    _pre_call_callback("glTexGenf", (void*)glTexGenf, 3, arg0, arg1, arg2);
     glad_glTexGenf(arg0, arg1, arg2);
    _post_call_callback("glTexGenf", (void*)glTexGenf, 3, arg0, arg1, arg2);
    
}
PFNGLTEXGENFPROC glad_debug_glTexGenf = glad_debug_impl_glTexGenf;
PFNGLGETPOINTERVPROC glad_glGetPointerv;
void APIENTRY glad_debug_impl_glGetPointerv(GLenum arg0, void ** arg1) {    
    _pre_call_callback("glGetPointerv", (void*)glGetPointerv, 2, arg0, arg1);
     glad_glGetPointerv(arg0, arg1);
    _post_call_callback("glGetPointerv", (void*)glGetPointerv, 2, arg0, arg1);
    
}
PFNGLGETPOINTERVPROC glad_debug_glGetPointerv = glad_debug_impl_glGetPointerv;
PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset;
void APIENTRY glad_debug_impl_glPolygonOffset(GLfloat arg0, GLfloat arg1) {    
    _pre_call_callback("glPolygonOffset", (void*)glPolygonOffset, 2, arg0, arg1);
     glad_glPolygonOffset(arg0, arg1);
    _post_call_callback("glPolygonOffset", (void*)glPolygonOffset, 2, arg0, arg1);
    
}
PFNGLPOLYGONOFFSETPROC glad_debug_glPolygonOffset = glad_debug_impl_glPolygonOffset;
PFNGLNORMAL3FVPROC glad_glNormal3fv;
void APIENTRY glad_debug_impl_glNormal3fv(const GLfloat * arg0) {    
    _pre_call_callback("glNormal3fv", (void*)glNormal3fv, 1, arg0);
     glad_glNormal3fv(arg0);
    _post_call_callback("glNormal3fv", (void*)glNormal3fv, 1, arg0);
    
}
PFNGLNORMAL3FVPROC glad_debug_glNormal3fv = glad_debug_impl_glNormal3fv;
PFNGLSECONDARYCOLOR3SPROC glad_glSecondaryColor3s;
void APIENTRY glad_debug_impl_glSecondaryColor3s(GLshort arg0, GLshort arg1, GLshort arg2) {    
    _pre_call_callback("glSecondaryColor3s", (void*)glSecondaryColor3s, 3, arg0, arg1, arg2);
     glad_glSecondaryColor3s(arg0, arg1, arg2);
    _post_call_callback("glSecondaryColor3s", (void*)glSecondaryColor3s, 3, arg0, arg1, arg2);
    
}
PFNGLSECONDARYCOLOR3SPROC glad_debug_glSecondaryColor3s = glad_debug_impl_glSecondaryColor3s;
PFNGLDEPTHRANGEPROC glad_glDepthRange;
void APIENTRY glad_debug_impl_glDepthRange(GLdouble arg0, GLdouble arg1) {    
    _pre_call_callback("glDepthRange", (void*)glDepthRange, 2, arg0, arg1);
     glad_glDepthRange(arg0, arg1);
    _post_call_callback("glDepthRange", (void*)glDepthRange, 2, arg0, arg1);
    
}
PFNGLDEPTHRANGEPROC glad_debug_glDepthRange = glad_debug_impl_glDepthRange;
PFNGLFRUSTUMPROC glad_glFrustum;
void APIENTRY glad_debug_impl_glFrustum(GLdouble arg0, GLdouble arg1, GLdouble arg2, GLdouble arg3, GLdouble arg4, GLdouble arg5) {    
    _pre_call_callback("glFrustum", (void*)glFrustum, 6, arg0, arg1, arg2, arg3, arg4, arg5);
     glad_glFrustum(arg0, arg1, arg2, arg3, arg4, arg5);
    _post_call_callback("glFrustum", (void*)glFrustum, 6, arg0, arg1, arg2, arg3, arg4, arg5);
    
}
PFNGLFRUSTUMPROC glad_debug_glFrustum = glad_debug_impl_glFrustum;
PFNGLMULTITEXCOORD4SVPROC glad_glMultiTexCoord4sv;
void APIENTRY glad_debug_impl_glMultiTexCoord4sv(GLenum arg0, const GLshort * arg1) {    
    _pre_call_callback("glMultiTexCoord4sv", (void*)glMultiTexCoord4sv, 2, arg0, arg1);
     glad_glMultiTexCoord4sv(arg0, arg1);
    _post_call_callback("glMultiTexCoord4sv", (void*)glMultiTexCoord4sv, 2, arg0, arg1);
    
}
PFNGLMULTITEXCOORD4SVPROC glad_debug_glMultiTexCoord4sv = glad_debug_impl_glMultiTexCoord4sv;
PFNGLDRAWBUFFERPROC glad_glDrawBuffer;
void APIENTRY glad_debug_impl_glDrawBuffer(GLenum arg0) {    
    _pre_call_callback("glDrawBuffer", (void*)glDrawBuffer, 1, arg0);
     glad_glDrawBuffer(arg0);
    _post_call_callback("glDrawBuffer", (void*)glDrawBuffer, 1, arg0);
    
}
PFNGLDRAWBUFFERPROC glad_debug_glDrawBuffer = glad_debug_impl_glDrawBuffer;
PFNGLPUSHMATRIXPROC glad_glPushMatrix;
void APIENTRY glad_debug_impl_glPushMatrix(void) {    
    _pre_call_callback("glPushMatrix", (void*)glPushMatrix, 0);
     glad_glPushMatrix();
    _post_call_callback("glPushMatrix", (void*)glPushMatrix, 0);
    
}
PFNGLPUSHMATRIXPROC glad_debug_glPushMatrix = glad_debug_impl_glPushMatrix;
PFNGLRASTERPOS3FVPROC glad_glRasterPos3fv;
void APIENTRY glad_debug_impl_glRasterPos3fv(const GLfloat * arg0) {    
    _pre_call_callback("glRasterPos3fv", (void*)glRasterPos3fv, 1, arg0);
     glad_glRasterPos3fv(arg0);
    _post_call_callback("glRasterPos3fv", (void*)glRasterPos3fv, 1, arg0);
    
}
PFNGLRASTERPOS3FVPROC glad_debug_glRasterPos3fv = glad_debug_impl_glRasterPos3fv;
PFNGLORTHOPROC glad_glOrtho;
void APIENTRY glad_debug_impl_glOrtho(GLdouble arg0, GLdouble arg1, GLdouble arg2, GLdouble arg3, GLdouble arg4, GLdouble arg5) {    
    _pre_call_callback("glOrtho", (void*)glOrtho, 6, arg0, arg1, arg2, arg3, arg4, arg5);
     glad_glOrtho(arg0, arg1, arg2, arg3, arg4, arg5);
    _post_call_callback("glOrtho", (void*)glOrtho, 6, arg0, arg1, arg2, arg3, arg4, arg5);
    
}
PFNGLORTHOPROC glad_debug_glOrtho = glad_debug_impl_glOrtho;
PFNGLWINDOWPOS3SVPROC glad_glWindowPos3sv;
void APIENTRY glad_debug_impl_glWindowPos3sv(const GLshort * arg0) {    
    _pre_call_callback("glWindowPos3sv", (void*)glWindowPos3sv, 1, arg0);
     glad_glWindowPos3sv(arg0);
    _post_call_callback("glWindowPos3sv", (void*)glWindowPos3sv, 1, arg0);
    
}
PFNGLWINDOWPOS3SVPROC glad_debug_glWindowPos3sv = glad_debug_impl_glWindowPos3sv;
PFNGLCLEARINDEXPROC glad_glClearIndex;
void APIENTRY glad_debug_impl_glClearIndex(GLfloat arg0) {    
    _pre_call_callback("glClearIndex", (void*)glClearIndex, 1, arg0);
     glad_glClearIndex(arg0);
    _post_call_callback("glClearIndex", (void*)glClearIndex, 1, arg0);
    
}
PFNGLCLEARINDEXPROC glad_debug_glClearIndex = glad_debug_impl_glClearIndex;
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("glMap1d", (void*)glMap1d, 6, arg0, arg1, arg2, arg3, arg4, arg5);
     glad_glMap1d(arg0, arg1, arg2, arg3, arg4, arg5);
    _post_call_callback("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("glMap1f", (void*)glMap1f, 6, arg0, arg1, arg2, arg3, arg4, arg5);
     glad_glMap1f(arg0, arg1, arg2, arg3, arg4, arg5);
    _post_call_callback("glMap1f", (void*)glMap1f, 6, arg0, arg1, arg2, arg3, arg4, arg5);
    
}
PFNGLMAP1FPROC glad_debug_glMap1f = glad_debug_impl_glMap1f;
PFNGLFLUSHPROC glad_glFlush;
void APIENTRY glad_debug_impl_glFlush(void) {    
    _pre_call_callback("glFlush", (void*)glFlush, 0);
     glad_glFlush();
    _post_call_callback("glFlush", (void*)glFlush, 0);
    
}
PFNGLFLUSHPROC glad_debug_glFlush = glad_debug_impl_glFlush;
PFNGLINDEXIVPROC glad_glIndexiv;
void APIENTRY glad_debug_impl_glIndexiv(const GLint * arg0) {    
    _pre_call_callback("glIndexiv", (void*)glIndexiv, 1, arg0);
     glad_glIndexiv(arg0);
    _post_call_callback("glIndexiv", (void*)glIndexiv, 1, arg0);
    
}
PFNGLINDEXIVPROC glad_debug_glIndexiv = glad_debug_impl_glIndexiv;
PFNGLRASTERPOS3SVPROC glad_glRasterPos3sv;
void APIENTRY glad_debug_impl_glRasterPos3sv(const GLshort * arg0) {    
    _pre_call_callback("glRasterPos3sv", (void*)glRasterPos3sv, 1, arg0);
     glad_glRasterPos3sv(arg0);
    _post_call_callback("glRasterPos3sv", (void*)glRasterPos3sv, 1, arg0);
    
}
PFNGLRASTERPOS3SVPROC glad_debug_glRasterPos3sv = glad_debug_impl_glRasterPos3sv;
PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv;
void APIENTRY glad_debug_impl_glGetVertexAttribPointerv(GLuint arg0, GLenum arg1, void ** arg2) {    
    _pre_call_callback("glGetVertexAttribPointerv", (void*)glGetVertexAttribPointerv, 3, arg0, arg1, arg2);
     glad_glGetVertexAttribPointerv(arg0, arg1, arg2);
    _post_call_callback("glGetVertexAttribPointerv", (void*)glGetVertexAttribPointerv, 3, arg0, arg1, arg2);
    
}
PFNGLGETVERTEXATTRIBPOINTERVPROC glad_debug_glGetVertexAttribPointerv = glad_debug_impl_glGetVertexAttribPointerv;
PFNGLPIXELZOOMPROC glad_glPixelZoom;
void APIENTRY glad_debug_impl_glPixelZoom(GLfloat arg0, GLfloat arg1) {    
    _pre_call_callback("glPixelZoom", (void*)glPixelZoom, 2, arg0, arg1);
     glad_glPixelZoom(arg0, arg1);
    _post_call_callback("glPixelZoom", (void*)glPixelZoom, 2, arg0, arg1);
    
}
PFNGLPIXELZOOMPROC glad_debug_glPixelZoom = glad_debug_impl_glPixelZoom;
PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv;
void APIENTRY glad_debug_impl_glVertexAttrib3sv(GLuint arg0, const GLshort * arg1) {    
    _pre_call_callback("glVertexAttrib3sv", (void*)glVertexAttrib3sv, 2, arg0, arg1);
     glad_glVertexAttrib3sv(arg0, arg1);
    _post_call_callback("glVertexAttrib3sv", (void*)glVertexAttrib3sv, 2, arg0, arg1);
    
}
PFNGLVERTEXATTRIB3SVPROC glad_debug_glVertexAttrib3sv = glad_debug_impl_glVertexAttrib3sv;
PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv;
void APIENTRY glad_debug_impl_glGetTexLevelParameteriv(GLenum arg0, GLint arg1, GLenum arg2, GLint * arg3) {    
    _pre_call_callback("glGetTexLevelParameteriv", (void*)glGetTexLevelParameteriv, 4, arg0, arg1, arg2, arg3);
     glad_glGetTexLevelParameteriv(arg0, arg1, arg2, arg3);
    _post_call_callback("glGetTexLevelParameteriv", (void*)glGetTexLevelParameteriv, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLGETTEXLEVELPARAMETERIVPROC glad_debug_glGetTexLevelParameteriv = glad_debug_impl_glGetTexLevelParameteriv;
PFNGLLIGHTIPROC glad_glLighti;
void APIENTRY glad_debug_impl_glLighti(GLenum arg0, GLenum arg1, GLint arg2) {    
    _pre_call_callback("glLighti", (void*)glLighti, 3, arg0, arg1, arg2);
     glad_glLighti(arg0, arg1, arg2);
    _post_call_callback("glLighti", (void*)glLighti, 3, arg0, arg1, arg2);
    
}
PFNGLLIGHTIPROC glad_debug_glLighti = glad_debug_impl_glLighti;
PFNGLLIGHTFPROC glad_glLightf;
void APIENTRY glad_debug_impl_glLightf(GLenum arg0, GLenum arg1, GLfloat arg2) {    
    _pre_call_callback("glLightf", (void*)glLightf, 3, arg0, arg1, arg2);
     glad_glLightf(arg0, arg1, arg2);
    _post_call_callback("glLightf", (void*)glLightf, 3, arg0, arg1, arg2);
    
}
PFNGLLIGHTFPROC glad_debug_glLightf = glad_debug_impl_glLightf;
PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation;
GLint APIENTRY glad_debug_impl_glGetAttribLocation(GLuint arg0, const GLchar * arg1) {    
    GLint ret;
    _pre_call_callback("glGetAttribLocation", (void*)glGetAttribLocation, 2, arg0, arg1);
    ret =  glad_glGetAttribLocation(arg0, arg1);
    _post_call_callback("glGetAttribLocation", (void*)glGetAttribLocation, 2, arg0, arg1);
    return ret;
}
PFNGLGETATTRIBLOCATIONPROC glad_debug_glGetAttribLocation = glad_debug_impl_glGetAttribLocation;
PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate;
void APIENTRY glad_debug_impl_glStencilFuncSeparate(GLenum arg0, GLenum arg1, GLint arg2, GLuint arg3) {    
    _pre_call_callback("glStencilFuncSeparate", (void*)glStencilFuncSeparate, 4, arg0, arg1, arg2, arg3);
     glad_glStencilFuncSeparate(arg0, arg1, arg2, arg3);
    _post_call_callback("glStencilFuncSeparate", (void*)glStencilFuncSeparate, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLSTENCILFUNCSEPARATEPROC glad_debug_glStencilFuncSeparate = glad_debug_impl_glStencilFuncSeparate;
PFNGLUNIFORM4IVPROC glad_glUniform4iv;
void APIENTRY glad_debug_impl_glUniform4iv(GLint arg0, GLsizei arg1, const GLint * arg2) {    
    _pre_call_callback("glUniform4iv", (void*)glUniform4iv, 3, arg0, arg1, arg2);
     glad_glUniform4iv(arg0, arg1, arg2);
    _post_call_callback("glUniform4iv", (void*)glUniform4iv, 3, arg0, arg1, arg2);
    
}
PFNGLUNIFORM4IVPROC glad_debug_glUniform4iv = glad_debug_impl_glUniform4iv;
PFNGLCLEARSTENCILPROC glad_glClearStencil;
void APIENTRY glad_debug_impl_glClearStencil(GLint arg0) {    
    _pre_call_callback("glClearStencil", (void*)glClearStencil, 1, arg0);
     glad_glClearStencil(arg0);
    _post_call_callback("glClearStencil", (void*)glClearStencil, 1, arg0);
    
}
PFNGLCLEARSTENCILPROC glad_debug_glClearStencil = glad_debug_impl_glClearStencil;
PFNGLMULTITEXCOORD3FVPROC glad_glMultiTexCoord3fv;
void APIENTRY glad_debug_impl_glMultiTexCoord3fv(GLenum arg0, const GLfloat * arg1) {    
    _pre_call_callback("glMultiTexCoord3fv", (void*)glMultiTexCoord3fv, 2, arg0, arg1);
     glad_glMultiTexCoord3fv(arg0, arg1);
    _post_call_callback("glMultiTexCoord3fv", (void*)glMultiTexCoord3fv, 2, arg0, arg1);
    
}
PFNGLMULTITEXCOORD3FVPROC glad_debug_glMultiTexCoord3fv = glad_debug_impl_glMultiTexCoord3fv;
PFNGLGETPIXELMAPUIVPROC glad_glGetPixelMapuiv;
void APIENTRY glad_debug_impl_glGetPixelMapuiv(GLenum arg0, GLuint * arg1) {    
    _pre_call_callback("glGetPixelMapuiv", (void*)glGetPixelMapuiv, 2, arg0, arg1);
     glad_glGetPixelMapuiv(arg0, arg1);
    _post_call_callback("glGetPixelMapuiv", (void*)glGetPixelMapuiv, 2, arg0, arg1);
    
}
PFNGLGETPIXELMAPUIVPROC glad_debug_glGetPixelMapuiv = glad_debug_impl_glGetPixelMapuiv;
PFNGLGENTEXTURESPROC glad_glGenTextures;
void APIENTRY glad_debug_impl_glGenTextures(GLsizei arg0, GLuint * arg1) {    
    _pre_call_callback("glGenTextures", (void*)glGenTextures, 2, arg0, arg1);
     glad_glGenTextures(arg0, arg1);
    _post_call_callback("glGenTextures", (void*)glGenTextures, 2, arg0, arg1);
    
}
PFNGLGENTEXTURESPROC glad_debug_glGenTextures = glad_debug_impl_glGenTextures;
PFNGLTEXCOORD4IVPROC glad_glTexCoord4iv;
void APIENTRY glad_debug_impl_glTexCoord4iv(const GLint * arg0) {    
    _pre_call_callback("glTexCoord4iv", (void*)glTexCoord4iv, 1, arg0);
     glad_glTexCoord4iv(arg0);
    _post_call_callback("glTexCoord4iv", (void*)glTexCoord4iv, 1, arg0);
    
}
PFNGLTEXCOORD4IVPROC glad_debug_glTexCoord4iv = glad_debug_impl_glTexCoord4iv;
PFNGLINDEXPOINTERPROC glad_glIndexPointer;
void APIENTRY glad_debug_impl_glIndexPointer(GLenum arg0, GLsizei arg1, const void * arg2) {    
    _pre_call_callback("glIndexPointer", (void*)glIndexPointer, 3, arg0, arg1, arg2);
     glad_glIndexPointer(arg0, arg1, arg2);
    _post_call_callback("glIndexPointer", (void*)glIndexPointer, 3, arg0, arg1, arg2);
    
}
PFNGLINDEXPOINTERPROC glad_debug_glIndexPointer = glad_debug_impl_glIndexPointer;
PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv;
void APIENTRY glad_debug_impl_glVertexAttrib4Nbv(GLuint arg0, const GLbyte * arg1) {    
    _pre_call_callback("glVertexAttrib4Nbv", (void*)glVertexAttrib4Nbv, 2, arg0, arg1);
     glad_glVertexAttrib4Nbv(arg0, arg1);
    _post_call_callback("glVertexAttrib4Nbv", (void*)glVertexAttrib4Nbv, 2, arg0, arg1);
    
}
PFNGLVERTEXATTRIB4NBVPROC glad_debug_glVertexAttrib4Nbv = glad_debug_impl_glVertexAttrib4Nbv;
PFNGLVERTEX2FPROC glad_glVertex2f;
void APIENTRY glad_debug_impl_glVertex2f(GLfloat arg0, GLfloat arg1) {    
    _pre_call_callback("glVertex2f", (void*)glVertex2f, 2, arg0, arg1);
     glad_glVertex2f(arg0, arg1);
    _post_call_callback("glVertex2f", (void*)glVertex2f, 2, arg0, arg1);
    
}
PFNGLVERTEX2FPROC glad_debug_glVertex2f = glad_debug_impl_glVertex2f;
PFNGLVERTEX2DPROC glad_glVertex2d;
void APIENTRY glad_debug_impl_glVertex2d(GLdouble arg0, GLdouble arg1) {    
    _pre_call_callback("glVertex2d", (void*)glVertex2d, 2, arg0, arg1);
     glad_glVertex2d(arg0, arg1);
    _post_call_callback("glVertex2d", (void*)glVertex2d, 2, arg0, arg1);
    
}
PFNGLVERTEX2DPROC glad_debug_glVertex2d = glad_debug_impl_glVertex2d;
PFNGLUNIFORM2IPROC glad_glUniform2i;
void APIENTRY glad_debug_impl_glUniform2i(GLint arg0, GLint arg1, GLint arg2) {    
    _pre_call_callback("glUniform2i", (void*)glUniform2i, 3, arg0, arg1, arg2);
     glad_glUniform2i(arg0, arg1, arg2);
    _post_call_callback("glUniform2i", (void*)glUniform2i, 3, arg0, arg1, arg2);
    
}
PFNGLUNIFORM2IPROC glad_debug_glUniform2i = glad_debug_impl_glUniform2i;
PFNGLMAPGRID2DPROC glad_glMapGrid2d;
void APIENTRY glad_debug_impl_glMapGrid2d(GLint arg0, GLdouble arg1, GLdouble arg2, GLint arg3, GLdouble arg4, GLdouble arg5) {    
    _pre_call_callback("glMapGrid2d", (void*)glMapGrid2d, 6, arg0, arg1, arg2, arg3, arg4, arg5);
     glad_glMapGrid2d(arg0, arg1, arg2, arg3, arg4, arg5);
    _post_call_callback("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("glMapGrid2f", (void*)glMapGrid2f, 6, arg0, arg1, arg2, arg3, arg4, arg5);
     glad_glMapGrid2f(arg0, arg1, arg2, arg3, arg4, arg5);
    _post_call_callback("glMapGrid2f", (void*)glMapGrid2f, 6, arg0, arg1, arg2, arg3, arg4, arg5);
    
}
PFNGLMAPGRID2FPROC glad_debug_glMapGrid2f = glad_debug_impl_glMapGrid2f;
PFNGLVERTEX2IPROC glad_glVertex2i;
void APIENTRY glad_debug_impl_glVertex2i(GLint arg0, GLint arg1) {    
    _pre_call_callback("glVertex2i", (void*)glVertex2i, 2, arg0, arg1);
     glad_glVertex2i(arg0, arg1);
    _post_call_callback("glVertex2i", (void*)glVertex2i, 2, arg0, arg1);
    
}
PFNGLVERTEX2IPROC glad_debug_glVertex2i = glad_debug_impl_glVertex2i;
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("glVertexAttribPointer", (void*)glVertexAttribPointer, 6, arg0, arg1, arg2, arg3, arg4, arg5);
     glad_glVertexAttribPointer(arg0, arg1, arg2, arg3, arg4, arg5);
    _post_call_callback("glVertexAttribPointer", (void*)glVertexAttribPointer, 6, arg0, arg1, arg2, arg3, arg4, arg5);
    
}
PFNGLVERTEXATTRIBPOINTERPROC glad_debug_glVertexAttribPointer = glad_debug_impl_glVertexAttribPointer;
PFNGLVERTEX2SPROC glad_glVertex2s;
void APIENTRY glad_debug_impl_glVertex2s(GLshort arg0, GLshort arg1) {    
    _pre_call_callback("glVertex2s", (void*)glVertex2s, 2, arg0, arg1);
     glad_glVertex2s(arg0, arg1);
    _post_call_callback("glVertex2s", (void*)glVertex2s, 2, arg0, arg1);
    
}
PFNGLVERTEX2SPROC glad_debug_glVertex2s = glad_debug_impl_glVertex2s;
PFNGLNORMAL3BVPROC glad_glNormal3bv;
void APIENTRY glad_debug_impl_glNormal3bv(const GLbyte * arg0) {    
    _pre_call_callback("glNormal3bv", (void*)glNormal3bv, 1, arg0);
     glad_glNormal3bv(arg0);
    _post_call_callback("glNormal3bv", (void*)glNormal3bv, 1, arg0);
    
}
PFNGLNORMAL3BVPROC glad_debug_glNormal3bv = glad_debug_impl_glNormal3bv;
PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv;
void APIENTRY glad_debug_impl_glVertexAttrib4Nuiv(GLuint arg0, const GLuint * arg1) {    
    _pre_call_callback("glVertexAttrib4Nuiv", (void*)glVertexAttrib4Nuiv, 2, arg0, arg1);
     glad_glVertexAttrib4Nuiv(arg0, arg1);
    _post_call_callback("glVertexAttrib4Nuiv", (void*)glVertexAttrib4Nuiv, 2, arg0, arg1);
    
}
PFNGLVERTEXATTRIB4NUIVPROC glad_debug_glVertexAttrib4Nuiv = glad_debug_impl_glVertexAttrib4Nuiv;
PFNGLSECONDARYCOLOR3SVPROC glad_glSecondaryColor3sv;
void APIENTRY glad_debug_impl_glSecondaryColor3sv(const GLshort * arg0) {    
    _pre_call_callback("glSecondaryColor3sv", (void*)glSecondaryColor3sv, 1, arg0);
     glad_glSecondaryColor3sv(arg0);
    _post_call_callback("glSecondaryColor3sv", (void*)glSecondaryColor3sv, 1, arg0);
    
}
PFNGLSECONDARYCOLOR3SVPROC glad_debug_glSecondaryColor3sv = glad_debug_impl_glSecondaryColor3sv;
PFNGLVERTEX3SVPROC glad_glVertex3sv;
void APIENTRY glad_debug_impl_glVertex3sv(const GLshort * arg0) {    
    _pre_call_callback("glVertex3sv", (void*)glVertex3sv, 1, arg0);
     glad_glVertex3sv(arg0);
    _post_call_callback("glVertex3sv", (void*)glVertex3sv, 1, arg0);
    
}
PFNGLVERTEX3SVPROC glad_debug_glVertex3sv = glad_debug_impl_glVertex3sv;
PFNGLGENQUERIESPROC glad_glGenQueries;
void APIENTRY glad_debug_impl_glGenQueries(GLsizei arg0, GLuint * arg1) {    
    _pre_call_callback("glGenQueries", (void*)glGenQueries, 2, arg0, arg1);
     glad_glGenQueries(arg0, arg1);
    _post_call_callback("glGenQueries", (void*)glGenQueries, 2, arg0, arg1);
    
}
PFNGLGENQUERIESPROC glad_debug_glGenQueries = glad_debug_impl_glGenQueries;
PFNGLGETPIXELMAPFVPROC glad_glGetPixelMapfv;
void APIENTRY glad_debug_impl_glGetPixelMapfv(GLenum arg0, GLfloat * arg1) {    
    _pre_call_callback("glGetPixelMapfv", (void*)glGetPixelMapfv, 2, arg0, arg1);
     glad_glGetPixelMapfv(arg0, arg1);
    _post_call_callback("glGetPixelMapfv", (void*)glGetPixelMapfv, 2, arg0, arg1);
    
}
PFNGLGETPIXELMAPFVPROC glad_debug_glGetPixelMapfv = glad_debug_impl_glGetPixelMapfv;
PFNGLTEXENVFPROC glad_glTexEnvf;
void APIENTRY glad_debug_impl_glTexEnvf(GLenum arg0, GLenum arg1, GLfloat arg2) {    
    _pre_call_callback("glTexEnvf", (void*)glTexEnvf, 3, arg0, arg1, arg2);
     glad_glTexEnvf(arg0, arg1, arg2);
    _post_call_callback("glTexEnvf", (void*)glTexEnvf, 3, arg0, arg1, arg2);
    
}
PFNGLTEXENVFPROC glad_debug_glTexEnvf = glad_debug_impl_glTexEnvf;
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("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("glTexSubImage3D", (void*)glTexSubImage3D, 11, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
    
}
PFNGLTEXSUBIMAGE3DPROC glad_debug_glTexSubImage3D = glad_debug_impl_glTexSubImage3D;
PFNGLFOGCOORDDPROC glad_glFogCoordd;
void APIENTRY glad_debug_impl_glFogCoordd(GLdouble arg0) {    
    _pre_call_callback("glFogCoordd", (void*)glFogCoordd, 1, arg0);
     glad_glFogCoordd(arg0);
    _post_call_callback("glFogCoordd", (void*)glFogCoordd, 1, arg0);
    
}
PFNGLFOGCOORDDPROC glad_debug_glFogCoordd = glad_debug_impl_glFogCoordd;
PFNGLFOGCOORDFPROC glad_glFogCoordf;
void APIENTRY glad_debug_impl_glFogCoordf(GLfloat arg0) {    
    _pre_call_callback("glFogCoordf", (void*)glFogCoordf, 1, arg0);
     glad_glFogCoordf(arg0);
    _post_call_callback("glFogCoordf", (void*)glFogCoordf, 1, arg0);
    
}
PFNGLFOGCOORDFPROC glad_debug_glFogCoordf = glad_debug_impl_glFogCoordf;
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("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("glCopyTexImage2D", (void*)glCopyTexImage2D, 8, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
    
}
PFNGLCOPYTEXIMAGE2DPROC glad_debug_glCopyTexImage2D = glad_debug_impl_glCopyTexImage2D;
PFNGLTEXENVIPROC glad_glTexEnvi;
void APIENTRY glad_debug_impl_glTexEnvi(GLenum arg0, GLenum arg1, GLint arg2) {    
    _pre_call_callback("glTexEnvi", (void*)glTexEnvi, 3, arg0, arg1, arg2);
     glad_glTexEnvi(arg0, arg1, arg2);
    _post_call_callback("glTexEnvi", (void*)glTexEnvi, 3, arg0, arg1, arg2);
    
}
PFNGLTEXENVIPROC glad_debug_glTexEnvi = glad_debug_impl_glTexEnvi;
PFNGLMULTITEXCOORD1IVPROC glad_glMultiTexCoord1iv;
void APIENTRY glad_debug_impl_glMultiTexCoord1iv(GLenum arg0, const GLint * arg1) {    
    _pre_call_callback("glMultiTexCoord1iv", (void*)glMultiTexCoord1iv, 2, arg0, arg1);
     glad_glMultiTexCoord1iv(arg0, arg1);
    _post_call_callback("glMultiTexCoord1iv", (void*)glMultiTexCoord1iv, 2, arg0, arg1);
    
}
PFNGLMULTITEXCOORD1IVPROC glad_debug_glMultiTexCoord1iv = glad_debug_impl_glMultiTexCoord1iv;
PFNGLMULTITEXCOORD2DVPROC glad_glMultiTexCoord2dv;
void APIENTRY glad_debug_impl_glMultiTexCoord2dv(GLenum arg0, const GLdouble * arg1) {    
    _pre_call_callback("glMultiTexCoord2dv", (void*)glMultiTexCoord2dv, 2, arg0, arg1);
     glad_glMultiTexCoord2dv(arg0, arg1);
    _post_call_callback("glMultiTexCoord2dv", (void*)glMultiTexCoord2dv, 2, arg0, arg1);
    
}
PFNGLMULTITEXCOORD2DVPROC glad_debug_glMultiTexCoord2dv = glad_debug_impl_glMultiTexCoord2dv;
PFNGLUNIFORM2IVPROC glad_glUniform2iv;
void APIENTRY glad_debug_impl_glUniform2iv(GLint arg0, GLsizei arg1, const GLint * arg2) {    
    _pre_call_callback("glUniform2iv", (void*)glUniform2iv, 3, arg0, arg1, arg2);
     glad_glUniform2iv(arg0, arg1, arg2);
    _post_call_callback("glUniform2iv", (void*)glUniform2iv, 3, arg0, arg1, arg2);
    
}
PFNGLUNIFORM2IVPROC glad_debug_glUniform2iv = glad_debug_impl_glUniform2iv;
PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv;
void APIENTRY glad_debug_impl_glVertexAttrib1fv(GLuint arg0, const GLfloat * arg1) {    
    _pre_call_callback("glVertexAttrib1fv", (void*)glVertexAttrib1fv, 2, arg0, arg1);
     glad_glVertexAttrib1fv(arg0, arg1);
    _post_call_callback("glVertexAttrib1fv", (void*)glVertexAttrib1fv, 2, arg0, arg1);
    
}
PFNGLVERTEXATTRIB1FVPROC glad_debug_glVertexAttrib1fv = glad_debug_impl_glVertexAttrib1fv;
PFNGLMATRIXMODEPROC glad_glMatrixMode;
void APIENTRY glad_debug_impl_glMatrixMode(GLenum arg0) {    
    _pre_call_callback("glMatrixMode", (void*)glMatrixMode, 1, arg0);
     glad_glMatrixMode(arg0);
    _post_call_callback("glMatrixMode", (void*)glMatrixMode, 1, arg0);
    
}
PFNGLMATRIXMODEPROC glad_debug_glMatrixMode = glad_debug_impl_glMatrixMode;
PFNGLFEEDBACKBUFFERPROC glad_glFeedbackBuffer;
void APIENTRY glad_debug_impl_glFeedbackBuffer(GLsizei arg0, GLenum arg1, GLfloat * arg2) {    
    _pre_call_callback("glFeedbackBuffer", (void*)glFeedbackBuffer, 3, arg0, arg1, arg2);
     glad_glFeedbackBuffer(arg0, arg1, arg2);
    _post_call_callback("glFeedbackBuffer", (void*)glFeedbackBuffer, 3, arg0, arg1, arg2);
    
}
PFNGLFEEDBACKBUFFERPROC glad_debug_glFeedbackBuffer = glad_debug_impl_glFeedbackBuffer;
PFNGLGETMAPIVPROC glad_glGetMapiv;
void APIENTRY glad_debug_impl_glGetMapiv(GLenum arg0, GLenum arg1, GLint * arg2) {    
    _pre_call_callback("glGetMapiv", (void*)glGetMapiv, 3, arg0, arg1, arg2);
     glad_glGetMapiv(arg0, arg1, arg2);
    _post_call_callback("glGetMapiv", (void*)glGetMapiv, 3, arg0, arg1, arg2);
    
}
PFNGLGETMAPIVPROC glad_debug_glGetMapiv = glad_debug_impl_glGetMapiv;
PFNGLGETSHADERIVPROC glad_glGetShaderiv;
void APIENTRY glad_debug_impl_glGetShaderiv(GLuint arg0, GLenum arg1, GLint * arg2) {    
    _pre_call_callback("glGetShaderiv", (void*)glGetShaderiv, 3, arg0, arg1, arg2);
     glad_glGetShaderiv(arg0, arg1, arg2);
    _post_call_callback("glGetShaderiv", (void*)glGetShaderiv, 3, arg0, arg1, arg2);
    
}
PFNGLGETSHADERIVPROC glad_debug_glGetShaderiv = glad_debug_impl_glGetShaderiv;
PFNGLMULTITEXCOORD2DPROC glad_glMultiTexCoord2d;
void APIENTRY glad_debug_impl_glMultiTexCoord2d(GLenum arg0, GLdouble arg1, GLdouble arg2) {    
    _pre_call_callback("glMultiTexCoord2d", (void*)glMultiTexCoord2d, 3, arg0, arg1, arg2);
     glad_glMultiTexCoord2d(arg0, arg1, arg2);
    _post_call_callback("glMultiTexCoord2d", (void*)glMultiTexCoord2d, 3, arg0, arg1, arg2);
    
}
PFNGLMULTITEXCOORD2DPROC glad_debug_glMultiTexCoord2d = glad_debug_impl_glMultiTexCoord2d;
PFNGLMULTITEXCOORD2FPROC glad_glMultiTexCoord2f;
void APIENTRY glad_debug_impl_glMultiTexCoord2f(GLenum arg0, GLfloat arg1, GLfloat arg2) {    
    _pre_call_callback("glMultiTexCoord2f", (void*)glMultiTexCoord2f, 3, arg0, arg1, arg2);
     glad_glMultiTexCoord2f(arg0, arg1, arg2);
    _post_call_callback("glMultiTexCoord2f", (void*)glMultiTexCoord2f, 3, arg0, arg1, arg2);
    
}
PFNGLMULTITEXCOORD2FPROC glad_debug_glMultiTexCoord2f = glad_debug_impl_glMultiTexCoord2f;
PFNGLPRIORITIZETEXTURESPROC glad_glPrioritizeTextures;
void APIENTRY glad_debug_impl_glPrioritizeTextures(GLsizei arg0, const GLuint * arg1, const GLfloat * arg2) {    
    _pre_call_callback("glPrioritizeTextures", (void*)glPrioritizeTextures, 3, arg0, arg1, arg2);
     glad_glPrioritizeTextures(arg0, arg1, arg2);
    _post_call_callback("glPrioritizeTextures", (void*)glPrioritizeTextures, 3, arg0, arg1, arg2);
    
}
PFNGLPRIORITIZETEXTURESPROC glad_debug_glPrioritizeTextures = glad_debug_impl_glPrioritizeTextures;
PFNGLCALLLISTPROC glad_glCallList;
void APIENTRY glad_debug_impl_glCallList(GLuint arg0) {    
    _pre_call_callback("glCallList", (void*)glCallList, 1, arg0);
     glad_glCallList(arg0);
    _post_call_callback("glCallList", (void*)glCallList, 1, arg0);
    
}
PFNGLCALLLISTPROC glad_debug_glCallList = glad_debug_impl_glCallList;
PFNGLSECONDARYCOLOR3UBVPROC glad_glSecondaryColor3ubv;
void APIENTRY glad_debug_impl_glSecondaryColor3ubv(const GLubyte * arg0) {    
    _pre_call_callback("glSecondaryColor3ubv", (void*)glSecondaryColor3ubv, 1, arg0);
     glad_glSecondaryColor3ubv(arg0);
    _post_call_callback("glSecondaryColor3ubv", (void*)glSecondaryColor3ubv, 1, arg0);
    
}
PFNGLSECONDARYCOLOR3UBVPROC glad_debug_glSecondaryColor3ubv = glad_debug_impl_glSecondaryColor3ubv;
PFNGLGETDOUBLEVPROC glad_glGetDoublev;
void APIENTRY glad_debug_impl_glGetDoublev(GLenum arg0, GLdouble * arg1) {    
    _pre_call_callback("glGetDoublev", (void*)glGetDoublev, 2, arg0, arg1);
     glad_glGetDoublev(arg0, arg1);
    _post_call_callback("glGetDoublev", (void*)glGetDoublev, 2, arg0, arg1);
    
}
PFNGLGETDOUBLEVPROC glad_debug_glGetDoublev = glad_debug_impl_glGetDoublev;
PFNGLMULTITEXCOORD3IVPROC glad_glMultiTexCoord3iv;
void APIENTRY glad_debug_impl_glMultiTexCoord3iv(GLenum arg0, const GLint * arg1) {    
    _pre_call_callback("glMultiTexCoord3iv", (void*)glMultiTexCoord3iv, 2, arg0, arg1);
     glad_glMultiTexCoord3iv(arg0, arg1);
    _post_call_callback("glMultiTexCoord3iv", (void*)glMultiTexCoord3iv, 2, arg0, arg1);
    
}
PFNGLMULTITEXCOORD3IVPROC glad_debug_glMultiTexCoord3iv = glad_debug_impl_glMultiTexCoord3iv;
PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d;
void APIENTRY glad_debug_impl_glVertexAttrib1d(GLuint arg0, GLdouble arg1) {    
    _pre_call_callback("glVertexAttrib1d", (void*)glVertexAttrib1d, 2, arg0, arg1);
     glad_glVertexAttrib1d(arg0, arg1);
    _post_call_callback("glVertexAttrib1d", (void*)glVertexAttrib1d, 2, arg0, arg1);
    
}
PFNGLVERTEXATTRIB1DPROC glad_debug_glVertexAttrib1d = glad_debug_impl_glVertexAttrib1d;
PFNGLLIGHTMODELFPROC glad_glLightModelf;
void APIENTRY glad_debug_impl_glLightModelf(GLenum arg0, GLfloat arg1) {    
    _pre_call_callback("glLightModelf", (void*)glLightModelf, 2, arg0, arg1);
     glad_glLightModelf(arg0, arg1);
    _post_call_callback("glLightModelf", (void*)glLightModelf, 2, arg0, arg1);
    
}
PFNGLLIGHTMODELFPROC glad_debug_glLightModelf = glad_debug_impl_glLightModelf;
PFNGLGETUNIFORMIVPROC glad_glGetUniformiv;
void APIENTRY glad_debug_impl_glGetUniformiv(GLuint arg0, GLint arg1, GLint * arg2) {    
    _pre_call_callback("glGetUniformiv", (void*)glGetUniformiv, 3, arg0, arg1, arg2);
     glad_glGetUniformiv(arg0, arg1, arg2);
    _post_call_callback("glGetUniformiv", (void*)glGetUniformiv, 3, arg0, arg1, arg2);
    
}
PFNGLGETUNIFORMIVPROC glad_debug_glGetUniformiv = glad_debug_impl_glGetUniformiv;
PFNGLVERTEX2SVPROC glad_glVertex2sv;
void APIENTRY glad_debug_impl_glVertex2sv(const GLshort * arg0) {    
    _pre_call_callback("glVertex2sv", (void*)glVertex2sv, 1, arg0);
     glad_glVertex2sv(arg0);
    _post_call_callback("glVertex2sv", (void*)glVertex2sv, 1, arg0);
    
}
PFNGLVERTEX2SVPROC glad_debug_glVertex2sv = glad_debug_impl_glVertex2sv;
PFNGLLIGHTMODELIPROC glad_glLightModeli;
void APIENTRY glad_debug_impl_glLightModeli(GLenum arg0, GLint arg1) {    
    _pre_call_callback("glLightModeli", (void*)glLightModeli, 2, arg0, arg1);
     glad_glLightModeli(arg0, arg1);
    _post_call_callback("glLightModeli", (void*)glLightModeli, 2, arg0, arg1);
    
}
PFNGLLIGHTMODELIPROC glad_debug_glLightModeli = glad_debug_impl_glLightModeli;
PFNGLWINDOWPOS3IVPROC glad_glWindowPos3iv;
void APIENTRY glad_debug_impl_glWindowPos3iv(const GLint * arg0) {    
    _pre_call_callback("glWindowPos3iv", (void*)glWindowPos3iv, 1, arg0);
     glad_glWindowPos3iv(arg0);
    _post_call_callback("glWindowPos3iv", (void*)glWindowPos3iv, 1, arg0);
    
}
PFNGLWINDOWPOS3IVPROC glad_debug_glWindowPos3iv = glad_debug_impl_glWindowPos3iv;
PFNGLUNIFORM3FVPROC glad_glUniform3fv;
void APIENTRY glad_debug_impl_glUniform3fv(GLint arg0, GLsizei arg1, const GLfloat * arg2) {    
    _pre_call_callback("glUniform3fv", (void*)glUniform3fv, 3, arg0, arg1, arg2);
     glad_glUniform3fv(arg0, arg1, arg2);
    _post_call_callback("glUniform3fv", (void*)glUniform3fv, 3, arg0, arg1, arg2);
    
}
PFNGLUNIFORM3FVPROC glad_debug_glUniform3fv = glad_debug_impl_glUniform3fv;
PFNGLPIXELSTOREIPROC glad_glPixelStorei;
void APIENTRY glad_debug_impl_glPixelStorei(GLenum arg0, GLint arg1) {    
    _pre_call_callback("glPixelStorei", (void*)glPixelStorei, 2, arg0, arg1);
     glad_glPixelStorei(arg0, arg1);
    _post_call_callback("glPixelStorei", (void*)glPixelStorei, 2, arg0, arg1);
    
}
PFNGLPIXELSTOREIPROC glad_debug_glPixelStorei = glad_debug_impl_glPixelStorei;
PFNGLCALLLISTSPROC glad_glCallLists;
void APIENTRY glad_debug_impl_glCallLists(GLsizei arg0, GLenum arg1, const void * arg2) {    
    _pre_call_callback("glCallLists", (void*)glCallLists, 3, arg0, arg1, arg2);
     glad_glCallLists(arg0, arg1, arg2);
    _post_call_callback("glCallLists", (void*)glCallLists, 3, arg0, arg1, arg2);
    
}
PFNGLCALLLISTSPROC glad_debug_glCallLists = glad_debug_impl_glCallLists;
PFNGLMAPBUFFERPROC glad_glMapBuffer;
void * APIENTRY glad_debug_impl_glMapBuffer(GLenum arg0, GLenum arg1) {    
    void * ret;
    _pre_call_callback("glMapBuffer", (void*)glMapBuffer, 2, arg0, arg1);
    ret =  glad_glMapBuffer(arg0, arg1);
    _post_call_callback("glMapBuffer", (void*)glMapBuffer, 2, arg0, arg1);
    return ret;
}
PFNGLMAPBUFFERPROC glad_debug_glMapBuffer = glad_debug_impl_glMapBuffer;
PFNGLSECONDARYCOLOR3DPROC glad_glSecondaryColor3d;
void APIENTRY glad_debug_impl_glSecondaryColor3d(GLdouble arg0, GLdouble arg1, GLdouble arg2) {    
    _pre_call_callback("glSecondaryColor3d", (void*)glSecondaryColor3d, 3, arg0, arg1, arg2);
     glad_glSecondaryColor3d(arg0, arg1, arg2);
    _post_call_callback("glSecondaryColor3d", (void*)glSecondaryColor3d, 3, arg0, arg1, arg2);
    
}
PFNGLSECONDARYCOLOR3DPROC glad_debug_glSecondaryColor3d = glad_debug_impl_glSecondaryColor3d;
PFNGLTEXCOORD3IPROC glad_glTexCoord3i;
void APIENTRY glad_debug_impl_glTexCoord3i(GLint arg0, GLint arg1, GLint arg2) {    
    _pre_call_callback("glTexCoord3i", (void*)glTexCoord3i, 3, arg0, arg1, arg2);
     glad_glTexCoord3i(arg0, arg1, arg2);
    _post_call_callback("glTexCoord3i", (void*)glTexCoord3i, 3, arg0, arg1, arg2);
    
}
PFNGLTEXCOORD3IPROC glad_debug_glTexCoord3i = glad_debug_impl_glTexCoord3i;
PFNGLMULTITEXCOORD4FVPROC glad_glMultiTexCoord4fv;
void APIENTRY glad_debug_impl_glMultiTexCoord4fv(GLenum arg0, const GLfloat * arg1) {    
    _pre_call_callback("glMultiTexCoord4fv", (void*)glMultiTexCoord4fv, 2, arg0, arg1);
     glad_glMultiTexCoord4fv(arg0, arg1);
    _post_call_callback("glMultiTexCoord4fv", (void*)glMultiTexCoord4fv, 2, arg0, arg1);
    
}
PFNGLMULTITEXCOORD4FVPROC glad_debug_glMultiTexCoord4fv = glad_debug_impl_glMultiTexCoord4fv;
PFNGLRASTERPOS3IPROC glad_glRasterPos3i;
void APIENTRY glad_debug_impl_glRasterPos3i(GLint arg0, GLint arg1, GLint arg2) {    
    _pre_call_callback("glRasterPos3i", (void*)glRasterPos3i, 3, arg0, arg1, arg2);
     glad_glRasterPos3i(arg0, arg1, arg2);
    _post_call_callback("glRasterPos3i", (void*)glRasterPos3i, 3, arg0, arg1, arg2);
    
}
PFNGLRASTERPOS3IPROC glad_debug_glRasterPos3i = glad_debug_impl_glRasterPos3i;
PFNGLSECONDARYCOLOR3BPROC glad_glSecondaryColor3b;
void APIENTRY glad_debug_impl_glSecondaryColor3b(GLbyte arg0, GLbyte arg1, GLbyte arg2) {    
    _pre_call_callback("glSecondaryColor3b", (void*)glSecondaryColor3b, 3, arg0, arg1, arg2);
     glad_glSecondaryColor3b(arg0, arg1, arg2);
    _post_call_callback("glSecondaryColor3b", (void*)glSecondaryColor3b, 3, arg0, arg1, arg2);
    
}
PFNGLSECONDARYCOLOR3BPROC glad_debug_glSecondaryColor3b = glad_debug_impl_glSecondaryColor3b;
PFNGLRASTERPOS3DPROC glad_glRasterPos3d;
void APIENTRY glad_debug_impl_glRasterPos3d(GLdouble arg0, GLdouble arg1, GLdouble arg2) {    
    _pre_call_callback("glRasterPos3d", (void*)glRasterPos3d, 3, arg0, arg1, arg2);
     glad_glRasterPos3d(arg0, arg1, arg2);
    _post_call_callback("glRasterPos3d", (void*)glRasterPos3d, 3, arg0, arg1, arg2);
    
}
PFNGLRASTERPOS3DPROC glad_debug_glRasterPos3d = glad_debug_impl_glRasterPos3d;
PFNGLRASTERPOS3FPROC glad_glRasterPos3f;
void APIENTRY glad_debug_impl_glRasterPos3f(GLfloat arg0, GLfloat arg1, GLfloat arg2) {    
    _pre_call_callback("glRasterPos3f", (void*)glRasterPos3f, 3, arg0, arg1, arg2);
     glad_glRasterPos3f(arg0, arg1, arg2);
    _post_call_callback("glRasterPos3f", (void*)glRasterPos3f, 3, arg0, arg1, arg2);
    
}
PFNGLRASTERPOS3FPROC glad_debug_glRasterPos3f = glad_debug_impl_glRasterPos3f;
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("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("glCompressedTexImage3D", (void*)glCompressedTexImage3D, 9, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
    
}
PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_debug_glCompressedTexImage3D = glad_debug_impl_glCompressedTexImage3D;
PFNGLTEXCOORD3FPROC glad_glTexCoord3f;
void APIENTRY glad_debug_impl_glTexCoord3f(GLfloat arg0, GLfloat arg1, GLfloat arg2) {    
    _pre_call_callback("glTexCoord3f", (void*)glTexCoord3f, 3, arg0, arg1, arg2);
     glad_glTexCoord3f(arg0, arg1, arg2);
    _post_call_callback("glTexCoord3f", (void*)glTexCoord3f, 3, arg0, arg1, arg2);
    
}
PFNGLTEXCOORD3FPROC glad_debug_glTexCoord3f = glad_debug_impl_glTexCoord3f;
PFNGLTEXCOORD3DPROC glad_glTexCoord3d;
void APIENTRY glad_debug_impl_glTexCoord3d(GLdouble arg0, GLdouble arg1, GLdouble arg2) {    
    _pre_call_callback("glTexCoord3d", (void*)glTexCoord3d, 3, arg0, arg1, arg2);
     glad_glTexCoord3d(arg0, arg1, arg2);
    _post_call_callback("glTexCoord3d", (void*)glTexCoord3d, 3, arg0, arg1, arg2);
    
}
PFNGLTEXCOORD3DPROC glad_debug_glTexCoord3d = glad_debug_impl_glTexCoord3d;
PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv;
void APIENTRY glad_debug_impl_glGetVertexAttribiv(GLuint arg0, GLenum arg1, GLint * arg2) {    
    _pre_call_callback("glGetVertexAttribiv", (void*)glGetVertexAttribiv, 3, arg0, arg1, arg2);
     glad_glGetVertexAttribiv(arg0, arg1, arg2);
    _post_call_callback("glGetVertexAttribiv", (void*)glGetVertexAttribiv, 3, arg0, arg1, arg2);
    
}
PFNGLGETVERTEXATTRIBIVPROC glad_debug_glGetVertexAttribiv = glad_debug_impl_glGetVertexAttribiv;
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("glMultiDrawElements", (void*)glMultiDrawElements, 5, arg0, arg1, arg2, arg3, arg4);
     glad_glMultiDrawElements(arg0, arg1, arg2, arg3, arg4);
    _post_call_callback("glMultiDrawElements", (void*)glMultiDrawElements, 5, arg0, arg1, arg2, arg3, arg4);
    
}
PFNGLMULTIDRAWELEMENTSPROC glad_debug_glMultiDrawElements = glad_debug_impl_glMultiDrawElements;
PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv;
void APIENTRY glad_debug_impl_glVertexAttrib3fv(GLuint arg0, const GLfloat * arg1) {    
    _pre_call_callback("glVertexAttrib3fv", (void*)glVertexAttrib3fv, 2, arg0, arg1);
     glad_glVertexAttrib3fv(arg0, arg1);
    _post_call_callback("glVertexAttrib3fv", (void*)glVertexAttrib3fv, 2, arg0, arg1);
    
}
PFNGLVERTEXATTRIB3FVPROC glad_debug_glVertexAttrib3fv = glad_debug_impl_glVertexAttrib3fv;
PFNGLTEXCOORD3SPROC glad_glTexCoord3s;
void APIENTRY glad_debug_impl_glTexCoord3s(GLshort arg0, GLshort arg1, GLshort arg2) {    
    _pre_call_callback("glTexCoord3s", (void*)glTexCoord3s, 3, arg0, arg1, arg2);
     glad_glTexCoord3s(arg0, arg1, arg2);
    _post_call_callback("glTexCoord3s", (void*)glTexCoord3s, 3, arg0, arg1, arg2);
    
}
PFNGLTEXCOORD3SPROC glad_debug_glTexCoord3s = glad_debug_impl_glTexCoord3s;
PFNGLUNIFORM3IVPROC glad_glUniform3iv;
void APIENTRY glad_debug_impl_glUniform3iv(GLint arg0, GLsizei arg1, const GLint * arg2) {    
    _pre_call_callback("glUniform3iv", (void*)glUniform3iv, 3, arg0, arg1, arg2);
     glad_glUniform3iv(arg0, arg1, arg2);
    _post_call_callback("glUniform3iv", (void*)glUniform3iv, 3, arg0, arg1, arg2);
    
}
PFNGLUNIFORM3IVPROC glad_debug_glUniform3iv = glad_debug_impl_glUniform3iv;
PFNGLRASTERPOS3SPROC glad_glRasterPos3s;
void APIENTRY glad_debug_impl_glRasterPos3s(GLshort arg0, GLshort arg1, GLshort arg2) {    
    _pre_call_callback("glRasterPos3s", (void*)glRasterPos3s, 3, arg0, arg1, arg2);
     glad_glRasterPos3s(arg0, arg1, arg2);
    _post_call_callback("glRasterPos3s", (void*)glRasterPos3s, 3, arg0, arg1, arg2);
    
}
PFNGLRASTERPOS3SPROC glad_debug_glRasterPos3s = glad_debug_impl_glRasterPos3s;
PFNGLPOLYGONMODEPROC glad_glPolygonMode;
void APIENTRY glad_debug_impl_glPolygonMode(GLenum arg0, GLenum arg1) {    
    _pre_call_callback("glPolygonMode", (void*)glPolygonMode, 2, arg0, arg1);
     glad_glPolygonMode(arg0, arg1);
    _post_call_callback("glPolygonMode", (void*)glPolygonMode, 2, arg0, arg1);
    
}
PFNGLPOLYGONMODEPROC glad_debug_glPolygonMode = glad_debug_impl_glPolygonMode;
PFNGLDRAWBUFFERSPROC glad_glDrawBuffers;
void APIENTRY glad_debug_impl_glDrawBuffers(GLsizei arg0, const GLenum * arg1) {    
    _pre_call_callback("glDrawBuffers", (void*)glDrawBuffers, 2, arg0, arg1);
     glad_glDrawBuffers(arg0, arg1);
    _post_call_callback("glDrawBuffers", (void*)glDrawBuffers, 2, arg0, arg1);
    
}
PFNGLDRAWBUFFERSPROC glad_debug_glDrawBuffers = glad_debug_impl_glDrawBuffers;
PFNGLARETEXTURESRESIDENTPROC glad_glAreTexturesResident;
GLboolean APIENTRY glad_debug_impl_glAreTexturesResident(GLsizei arg0, const GLuint * arg1, GLboolean * arg2) {    
    GLboolean ret;
    _pre_call_callback("glAreTexturesResident", (void*)glAreTexturesResident, 3, arg0, arg1, arg2);
    ret =  glad_glAreTexturesResident(arg0, arg1, arg2);
    _post_call_callback("glAreTexturesResident", (void*)glAreTexturesResident, 3, arg0, arg1, arg2);
    return ret;
}
PFNGLARETEXTURESRESIDENTPROC glad_debug_glAreTexturesResident = glad_debug_impl_glAreTexturesResident;
PFNGLISLISTPROC glad_glIsList;
GLboolean APIENTRY glad_debug_impl_glIsList(GLuint arg0) {    
    GLboolean ret;
    _pre_call_callback("glIsList", (void*)glIsList, 1, arg0);
    ret =  glad_glIsList(arg0);
    _post_call_callback("glIsList", (void*)glIsList, 1, arg0);
    return ret;
}
PFNGLISLISTPROC glad_debug_glIsList = glad_debug_impl_glIsList;
PFNGLRASTERPOS2SVPROC glad_glRasterPos2sv;
void APIENTRY glad_debug_impl_glRasterPos2sv(const GLshort * arg0) {    
    _pre_call_callback("glRasterPos2sv", (void*)glRasterPos2sv, 1, arg0);
     glad_glRasterPos2sv(arg0);
    _post_call_callback("glRasterPos2sv", (void*)glRasterPos2sv, 1, arg0);
    
}
PFNGLRASTERPOS2SVPROC glad_debug_glRasterPos2sv = glad_debug_impl_glRasterPos2sv;
PFNGLRASTERPOS4SVPROC glad_glRasterPos4sv;
void APIENTRY glad_debug_impl_glRasterPos4sv(const GLshort * arg0) {    
    _pre_call_callback("glRasterPos4sv", (void*)glRasterPos4sv, 1, arg0);
     glad_glRasterPos4sv(arg0);
    _post_call_callback("glRasterPos4sv", (void*)glRasterPos4sv, 1, arg0);
    
}
PFNGLRASTERPOS4SVPROC glad_debug_glRasterPos4sv = glad_debug_impl_glRasterPos4sv;
PFNGLCOLOR4SPROC glad_glColor4s;
void APIENTRY glad_debug_impl_glColor4s(GLshort arg0, GLshort arg1, GLshort arg2, GLshort arg3) {    
    _pre_call_callback("glColor4s", (void*)glColor4s, 4, arg0, arg1, arg2, arg3);
     glad_glColor4s(arg0, arg1, arg2, arg3);
    _post_call_callback("glColor4s", (void*)glColor4s, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLCOLOR4SPROC glad_debug_glColor4s = glad_debug_impl_glColor4s;
PFNGLUSEPROGRAMPROC glad_glUseProgram;
void APIENTRY glad_debug_impl_glUseProgram(GLuint arg0) {    
    _pre_call_callback("glUseProgram", (void*)glUseProgram, 1, arg0);
     glad_glUseProgram(arg0);
    _post_call_callback("glUseProgram", (void*)glUseProgram, 1, arg0);
    
}
PFNGLUSEPROGRAMPROC glad_debug_glUseProgram = glad_debug_impl_glUseProgram;
PFNGLLINESTIPPLEPROC glad_glLineStipple;
void APIENTRY glad_debug_impl_glLineStipple(GLint arg0, GLushort arg1) {    
    _pre_call_callback("glLineStipple", (void*)glLineStipple, 2, arg0, arg1);
     glad_glLineStipple(arg0, arg1);
    _post_call_callback("glLineStipple", (void*)glLineStipple, 2, arg0, arg1);
    
}
PFNGLLINESTIPPLEPROC glad_debug_glLineStipple = glad_debug_impl_glLineStipple;
PFNGLMULTITEXCOORD1SVPROC glad_glMultiTexCoord1sv;
void APIENTRY glad_debug_impl_glMultiTexCoord1sv(GLenum arg0, const GLshort * arg1) {    
    _pre_call_callback("glMultiTexCoord1sv", (void*)glMultiTexCoord1sv, 2, arg0, arg1);
     glad_glMultiTexCoord1sv(arg0, arg1);
    _post_call_callback("glMultiTexCoord1sv", (void*)glMultiTexCoord1sv, 2, arg0, arg1);
    
}
PFNGLMULTITEXCOORD1SVPROC glad_debug_glMultiTexCoord1sv = glad_debug_impl_glMultiTexCoord1sv;
PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog;
void APIENTRY glad_debug_impl_glGetProgramInfoLog(GLuint arg0, GLsizei arg1, GLsizei * arg2, GLchar * arg3) {    
    _pre_call_callback("glGetProgramInfoLog", (void*)glGetProgramInfoLog, 4, arg0, arg1, arg2, arg3);
     glad_glGetProgramInfoLog(arg0, arg1, arg2, arg3);
    _post_call_callback("glGetProgramInfoLog", (void*)glGetProgramInfoLog, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLGETPROGRAMINFOLOGPROC glad_debug_glGetProgramInfoLog = glad_debug_impl_glGetProgramInfoLog;
PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv;
void APIENTRY glad_debug_impl_glGetBufferParameteriv(GLenum arg0, GLenum arg1, GLint * arg2) {    
    _pre_call_callback("glGetBufferParameteriv", (void*)glGetBufferParameteriv, 3, arg0, arg1, arg2);
     glad_glGetBufferParameteriv(arg0, arg1, arg2);
    _post_call_callback("glGetBufferParameteriv", (void*)glGetBufferParameteriv, 3, arg0, arg1, arg2);
    
}
PFNGLGETBUFFERPARAMETERIVPROC glad_debug_glGetBufferParameteriv = glad_debug_impl_glGetBufferParameteriv;
PFNGLMULTITEXCOORD2IVPROC glad_glMultiTexCoord2iv;
void APIENTRY glad_debug_impl_glMultiTexCoord2iv(GLenum arg0, const GLint * arg1) {    
    _pre_call_callback("glMultiTexCoord2iv", (void*)glMultiTexCoord2iv, 2, arg0, arg1);
     glad_glMultiTexCoord2iv(arg0, arg1);
    _post_call_callback("glMultiTexCoord2iv", (void*)glMultiTexCoord2iv, 2, arg0, arg1);
    
}
PFNGLMULTITEXCOORD2IVPROC glad_debug_glMultiTexCoord2iv = glad_debug_impl_glMultiTexCoord2iv;
PFNGLCOLOR4BPROC glad_glColor4b;
void APIENTRY glad_debug_impl_glColor4b(GLbyte arg0, GLbyte arg1, GLbyte arg2, GLbyte arg3) {    
    _pre_call_callback("glColor4b", (void*)glColor4b, 4, arg0, arg1, arg2, arg3);
     glad_glColor4b(arg0, arg1, arg2, arg3);
    _post_call_callback("glColor4b", (void*)glColor4b, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLCOLOR4BPROC glad_debug_glColor4b = glad_debug_impl_glColor4b;
PFNGLSECONDARYCOLOR3FPROC glad_glSecondaryColor3f;
void APIENTRY glad_debug_impl_glSecondaryColor3f(GLfloat arg0, GLfloat arg1, GLfloat arg2) {    
    _pre_call_callback("glSecondaryColor3f", (void*)glSecondaryColor3f, 3, arg0, arg1, arg2);
     glad_glSecondaryColor3f(arg0, arg1, arg2);
    _post_call_callback("glSecondaryColor3f", (void*)glSecondaryColor3f, 3, arg0, arg1, arg2);
    
}
PFNGLSECONDARYCOLOR3FPROC glad_debug_glSecondaryColor3f = glad_debug_impl_glSecondaryColor3f;
PFNGLCOLOR4FPROC glad_glColor4f;
void APIENTRY glad_debug_impl_glColor4f(GLfloat arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3) {    
    _pre_call_callback("glColor4f", (void*)glColor4f, 4, arg0, arg1, arg2, arg3);
     glad_glColor4f(arg0, arg1, arg2, arg3);
    _post_call_callback("glColor4f", (void*)glColor4f, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLCOLOR4FPROC glad_debug_glColor4f = glad_debug_impl_glColor4f;
PFNGLCOLOR4DPROC glad_glColor4d;
void APIENTRY glad_debug_impl_glColor4d(GLdouble arg0, GLdouble arg1, GLdouble arg2, GLdouble arg3) {    
    _pre_call_callback("glColor4d", (void*)glColor4d, 4, arg0, arg1, arg2, arg3);
     glad_glColor4d(arg0, arg1, arg2, arg3);
    _post_call_callback("glColor4d", (void*)glColor4d, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLCOLOR4DPROC glad_debug_glColor4d = glad_debug_impl_glColor4d;
PFNGLCOLOR4IPROC glad_glColor4i;
void APIENTRY glad_debug_impl_glColor4i(GLint arg0, GLint arg1, GLint arg2, GLint arg3) {    
    _pre_call_callback("glColor4i", (void*)glColor4i, 4, arg0, arg1, arg2, arg3);
     glad_glColor4i(arg0, arg1, arg2, arg3);
    _post_call_callback("glColor4i", (void*)glColor4i, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLCOLOR4IPROC glad_debug_glColor4i = glad_debug_impl_glColor4i;
PFNGLRASTERPOS3IVPROC glad_glRasterPos3iv;
void APIENTRY glad_debug_impl_glRasterPos3iv(const GLint * arg0) {    
    _pre_call_callback("glRasterPos3iv", (void*)glRasterPos3iv, 1, arg0);
     glad_glRasterPos3iv(arg0);
    _post_call_callback("glRasterPos3iv", (void*)glRasterPos3iv, 1, arg0);
    
}
PFNGLRASTERPOS3IVPROC glad_debug_glRasterPos3iv = glad_debug_impl_glRasterPos3iv;
PFNGLVERTEX2DVPROC glad_glVertex2dv;
void APIENTRY glad_debug_impl_glVertex2dv(const GLdouble * arg0) {    
    _pre_call_callback("glVertex2dv", (void*)glVertex2dv, 1, arg0);
     glad_glVertex2dv(arg0);
    _post_call_callback("glVertex2dv", (void*)glVertex2dv, 1, arg0);
    
}
PFNGLVERTEX2DVPROC glad_debug_glVertex2dv = glad_debug_impl_glVertex2dv;
PFNGLTEXCOORD4SVPROC glad_glTexCoord4sv;
void APIENTRY glad_debug_impl_glTexCoord4sv(const GLshort * arg0) {    
    _pre_call_callback("glTexCoord4sv", (void*)glTexCoord4sv, 1, arg0);
     glad_glTexCoord4sv(arg0);
    _post_call_callback("glTexCoord4sv", (void*)glTexCoord4sv, 1, arg0);
    
}
PFNGLTEXCOORD4SVPROC glad_debug_glTexCoord4sv = glad_debug_impl_glTexCoord4sv;
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("glCompressedTexSubImage1D", (void*)glCompressedTexSubImage1D, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
     glad_glCompressedTexSubImage1D(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
    _post_call_callback("glCompressedTexSubImage1D", (void*)glCompressedTexSubImage1D, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
    
}
PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_debug_glCompressedTexSubImage1D = glad_debug_impl_glCompressedTexSubImage1D;
PFNGLFINISHPROC glad_glFinish;
void APIENTRY glad_debug_impl_glFinish(void) {    
    _pre_call_callback("glFinish", (void*)glFinish, 0);
     glad_glFinish();
    _post_call_callback("glFinish", (void*)glFinish, 0);
    
}
PFNGLFINISHPROC glad_debug_glFinish = glad_debug_impl_glFinish;
PFNGLGETBOOLEANVPROC glad_glGetBooleanv;
void APIENTRY glad_debug_impl_glGetBooleanv(GLenum arg0, GLboolean * arg1) {    
    _pre_call_callback("glGetBooleanv", (void*)glGetBooleanv, 2, arg0, arg1);
     glad_glGetBooleanv(arg0, arg1);
    _post_call_callback("glGetBooleanv", (void*)glGetBooleanv, 2, arg0, arg1);
    
}
PFNGLGETBOOLEANVPROC glad_debug_glGetBooleanv = glad_debug_impl_glGetBooleanv;
PFNGLDELETESHADERPROC glad_glDeleteShader;
void APIENTRY glad_debug_impl_glDeleteShader(GLuint arg0) {    
    _pre_call_callback("glDeleteShader", (void*)glDeleteShader, 1, arg0);
     glad_glDeleteShader(arg0);
    _post_call_callback("glDeleteShader", (void*)glDeleteShader, 1, arg0);
    
}
PFNGLDELETESHADERPROC glad_debug_glDeleteShader = glad_debug_impl_glDeleteShader;
PFNGLDRAWELEMENTSPROC glad_glDrawElements;
void APIENTRY glad_debug_impl_glDrawElements(GLenum arg0, GLsizei arg1, GLenum arg2, const void * arg3) {    
    _pre_call_callback("glDrawElements", (void*)glDrawElements, 4, arg0, arg1, arg2, arg3);
     glad_glDrawElements(arg0, arg1, arg2, arg3);
    _post_call_callback("glDrawElements", (void*)glDrawElements, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLDRAWELEMENTSPROC glad_debug_glDrawElements = glad_debug_impl_glDrawElements;
PFNGLRASTERPOS2SPROC glad_glRasterPos2s;
void APIENTRY glad_debug_impl_glRasterPos2s(GLshort arg0, GLshort arg1) {    
    _pre_call_callback("glRasterPos2s", (void*)glRasterPos2s, 2, arg0, arg1);
     glad_glRasterPos2s(arg0, arg1);
    _post_call_callback("glRasterPos2s", (void*)glRasterPos2s, 2, arg0, arg1);
    
}
PFNGLRASTERPOS2SPROC glad_debug_glRasterPos2s = glad_debug_impl_glRasterPos2s;
PFNGLGETMAPDVPROC glad_glGetMapdv;
void APIENTRY glad_debug_impl_glGetMapdv(GLenum arg0, GLenum arg1, GLdouble * arg2) {    
    _pre_call_callback("glGetMapdv", (void*)glGetMapdv, 3, arg0, arg1, arg2);
     glad_glGetMapdv(arg0, arg1, arg2);
    _post_call_callback("glGetMapdv", (void*)glGetMapdv, 3, arg0, arg1, arg2);
    
}
PFNGLGETMAPDVPROC glad_debug_glGetMapdv = glad_debug_impl_glGetMapdv;
PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv;
void APIENTRY glad_debug_impl_glVertexAttrib4Nsv(GLuint arg0, const GLshort * arg1) {    
    _pre_call_callback("glVertexAttrib4Nsv", (void*)glVertexAttrib4Nsv, 2, arg0, arg1);
     glad_glVertexAttrib4Nsv(arg0, arg1);
    _post_call_callback("glVertexAttrib4Nsv", (void*)glVertexAttrib4Nsv, 2, arg0, arg1);
    
}
PFNGLVERTEXATTRIB4NSVPROC glad_debug_glVertexAttrib4Nsv = glad_debug_impl_glVertexAttrib4Nsv;
PFNGLMATERIALFVPROC glad_glMaterialfv;
void APIENTRY glad_debug_impl_glMaterialfv(GLenum arg0, GLenum arg1, const GLfloat * arg2) {    
    _pre_call_callback("glMaterialfv", (void*)glMaterialfv, 3, arg0, arg1, arg2);
     glad_glMaterialfv(arg0, arg1, arg2);
    _post_call_callback("glMaterialfv", (void*)glMaterialfv, 3, arg0, arg1, arg2);
    
}
PFNGLMATERIALFVPROC glad_debug_glMaterialfv = glad_debug_impl_glMaterialfv;
PFNGLVIEWPORTPROC glad_glViewport;
void APIENTRY glad_debug_impl_glViewport(GLint arg0, GLint arg1, GLsizei arg2, GLsizei arg3) {    
    _pre_call_callback("glViewport", (void*)glViewport, 4, arg0, arg1, arg2, arg3);
     glad_glViewport(arg0, arg1, arg2, arg3);
    _post_call_callback("glViewport", (void*)glViewport, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLVIEWPORTPROC glad_debug_glViewport = glad_debug_impl_glViewport;
PFNGLINDEXDVPROC glad_glIndexdv;
void APIENTRY glad_debug_impl_glIndexdv(const GLdouble * arg0) {    
    _pre_call_callback("glIndexdv", (void*)glIndexdv, 1, arg0);
     glad_glIndexdv(arg0);
    _post_call_callback("glIndexdv", (void*)glIndexdv, 1, arg0);
    
}
PFNGLINDEXDVPROC glad_debug_glIndexdv = glad_debug_impl_glIndexdv;
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("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("glCopyTexSubImage3D", (void*)glCopyTexSubImage3D, 9, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
    
}
PFNGLCOPYTEXSUBIMAGE3DPROC glad_debug_glCopyTexSubImage3D = glad_debug_impl_glCopyTexSubImage3D;
PFNGLTEXCOORD3IVPROC glad_glTexCoord3iv;
void APIENTRY glad_debug_impl_glTexCoord3iv(const GLint * arg0) {    
    _pre_call_callback("glTexCoord3iv", (void*)glTexCoord3iv, 1, arg0);
     glad_glTexCoord3iv(arg0);
    _post_call_callback("glTexCoord3iv", (void*)glTexCoord3iv, 1, arg0);
    
}
PFNGLTEXCOORD3IVPROC glad_debug_glTexCoord3iv = glad_debug_impl_glTexCoord3iv;
PFNGLCLEARDEPTHPROC glad_glClearDepth;
void APIENTRY glad_debug_impl_glClearDepth(GLdouble arg0) {    
    _pre_call_callback("glClearDepth", (void*)glClearDepth, 1, arg0);
     glad_glClearDepth(arg0);
    _post_call_callback("glClearDepth", (void*)glClearDepth, 1, arg0);
    
}
PFNGLCLEARDEPTHPROC glad_debug_glClearDepth = glad_debug_impl_glClearDepth;
PFNGLTEXPARAMETERFPROC glad_glTexParameterf;
void APIENTRY glad_debug_impl_glTexParameterf(GLenum arg0, GLenum arg1, GLfloat arg2) {    
    _pre_call_callback("glTexParameterf", (void*)glTexParameterf, 3, arg0, arg1, arg2);
     glad_glTexParameterf(arg0, arg1, arg2);
    _post_call_callback("glTexParameterf", (void*)glTexParameterf, 3, arg0, arg1, arg2);
    
}
PFNGLTEXPARAMETERFPROC glad_debug_glTexParameterf = glad_debug_impl_glTexParameterf;
PFNGLTEXPARAMETERIPROC glad_glTexParameteri;
void APIENTRY glad_debug_impl_glTexParameteri(GLenum arg0, GLenum arg1, GLint arg2) {    
    _pre_call_callback("glTexParameteri", (void*)glTexParameteri, 3, arg0, arg1, arg2);
     glad_glTexParameteri(arg0, arg1, arg2);
    _post_call_callback("glTexParameteri", (void*)glTexParameteri, 3, arg0, arg1, arg2);
    
}
PFNGLTEXPARAMETERIPROC glad_debug_glTexParameteri = glad_debug_impl_glTexParameteri;
PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource;
void APIENTRY glad_debug_impl_glGetShaderSource(GLuint arg0, GLsizei arg1, GLsizei * arg2, GLchar * arg3) {    
    _pre_call_callback("glGetShaderSource", (void*)glGetShaderSource, 4, arg0, arg1, arg2, arg3);
     glad_glGetShaderSource(arg0, arg1, arg2, arg3);
    _post_call_callback("glGetShaderSource", (void*)glGetShaderSource, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLGETSHADERSOURCEPROC glad_debug_glGetShaderSource = glad_debug_impl_glGetShaderSource;
PFNGLPOPNAMEPROC glad_glPopName;
void APIENTRY glad_debug_impl_glPopName(void) {    
    _pre_call_callback("glPopName", (void*)glPopName, 0);
     glad_glPopName();
    _post_call_callback("glPopName", (void*)glPopName, 0);
    
}
PFNGLPOPNAMEPROC glad_debug_glPopName = glad_debug_impl_glPopName;
PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram;
void APIENTRY glad_debug_impl_glValidateProgram(GLuint arg0) {    
    _pre_call_callback("glValidateProgram", (void*)glValidateProgram, 1, arg0);
     glad_glValidateProgram(arg0);
    _post_call_callback("glValidateProgram", (void*)glValidateProgram, 1, arg0);
    
}
PFNGLVALIDATEPROGRAMPROC glad_debug_glValidateProgram = glad_debug_impl_glValidateProgram;
PFNGLPIXELSTOREFPROC glad_glPixelStoref;
void APIENTRY glad_debug_impl_glPixelStoref(GLenum arg0, GLfloat arg1) {    
    _pre_call_callback("glPixelStoref", (void*)glPixelStoref, 2, arg0, arg1);
     glad_glPixelStoref(arg0, arg1);
    _post_call_callback("glPixelStoref", (void*)glPixelStoref, 2, arg0, arg1);
    
}
PFNGLPIXELSTOREFPROC glad_debug_glPixelStoref = glad_debug_impl_glPixelStoref;
PFNGLRASTERPOS4FVPROC glad_glRasterPos4fv;
void APIENTRY glad_debug_impl_glRasterPos4fv(const GLfloat * arg0) {    
    _pre_call_callback("glRasterPos4fv", (void*)glRasterPos4fv, 1, arg0);
     glad_glRasterPos4fv(arg0);
    _post_call_callback("glRasterPos4fv", (void*)glRasterPos4fv, 1, arg0);
    
}
PFNGLRASTERPOS4FVPROC glad_debug_glRasterPos4fv = glad_debug_impl_glRasterPos4fv;
PFNGLEVALCOORD1DVPROC glad_glEvalCoord1dv;
void APIENTRY glad_debug_impl_glEvalCoord1dv(const GLdouble * arg0) {    
    _pre_call_callback("glEvalCoord1dv", (void*)glEvalCoord1dv, 1, arg0);
     glad_glEvalCoord1dv(arg0);
    _post_call_callback("glEvalCoord1dv", (void*)glEvalCoord1dv, 1, arg0);
    
}
PFNGLEVALCOORD1DVPROC glad_debug_glEvalCoord1dv = glad_debug_impl_glEvalCoord1dv;
PFNGLRECTIPROC glad_glRecti;
void APIENTRY glad_debug_impl_glRecti(GLint arg0, GLint arg1, GLint arg2, GLint arg3) {    
    _pre_call_callback("glRecti", (void*)glRecti, 4, arg0, arg1, arg2, arg3);
     glad_glRecti(arg0, arg1, arg2, arg3);
    _post_call_callback("glRecti", (void*)glRecti, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLRECTIPROC glad_debug_glRecti = glad_debug_impl_glRecti;
PFNGLCOLOR4UBPROC glad_glColor4ub;
void APIENTRY glad_debug_impl_glColor4ub(GLubyte arg0, GLubyte arg1, GLubyte arg2, GLubyte arg3) {    
    _pre_call_callback("glColor4ub", (void*)glColor4ub, 4, arg0, arg1, arg2, arg3);
     glad_glColor4ub(arg0, arg1, arg2, arg3);
    _post_call_callback("glColor4ub", (void*)glColor4ub, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLCOLOR4UBPROC glad_debug_glColor4ub = glad_debug_impl_glColor4ub;
PFNGLMULTTRANSPOSEMATRIXFPROC glad_glMultTransposeMatrixf;
void APIENTRY glad_debug_impl_glMultTransposeMatrixf(const GLfloat * arg0) {    
    _pre_call_callback("glMultTransposeMatrixf", (void*)glMultTransposeMatrixf, 1, arg0);
     glad_glMultTransposeMatrixf(arg0);
    _post_call_callback("glMultTransposeMatrixf", (void*)glMultTransposeMatrixf, 1, arg0);
    
}
PFNGLMULTTRANSPOSEMATRIXFPROC glad_debug_glMultTransposeMatrixf = glad_debug_impl_glMultTransposeMatrixf;
PFNGLRECTFPROC glad_glRectf;
void APIENTRY glad_debug_impl_glRectf(GLfloat arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3) {    
    _pre_call_callback("glRectf", (void*)glRectf, 4, arg0, arg1, arg2, arg3);
     glad_glRectf(arg0, arg1, arg2, arg3);
    _post_call_callback("glRectf", (void*)glRectf, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLRECTFPROC glad_debug_glRectf = glad_debug_impl_glRectf;
PFNGLRECTDPROC glad_glRectd;
void APIENTRY glad_debug_impl_glRectd(GLdouble arg0, GLdouble arg1, GLdouble arg2, GLdouble arg3) {    
    _pre_call_callback("glRectd", (void*)glRectd, 4, arg0, arg1, arg2, arg3);
     glad_glRectd(arg0, arg1, arg2, arg3);
    _post_call_callback("glRectd", (void*)glRectd, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLRECTDPROC glad_debug_glRectd = glad_debug_impl_glRectd;
PFNGLNORMAL3SVPROC glad_glNormal3sv;
void APIENTRY glad_debug_impl_glNormal3sv(const GLshort * arg0) {    
    _pre_call_callback("glNormal3sv", (void*)glNormal3sv, 1, arg0);
     glad_glNormal3sv(arg0);
    _post_call_callback("glNormal3sv", (void*)glNormal3sv, 1, arg0);
    
}
PFNGLNORMAL3SVPROC glad_debug_glNormal3sv = glad_debug_impl_glNormal3sv;
PFNGLNEWLISTPROC glad_glNewList;
void APIENTRY glad_debug_impl_glNewList(GLuint arg0, GLenum arg1) {    
    _pre_call_callback("glNewList", (void*)glNewList, 2, arg0, arg1);
     glad_glNewList(arg0, arg1);
    _post_call_callback("glNewList", (void*)glNewList, 2, arg0, arg1);
    
}
PFNGLNEWLISTPROC glad_debug_glNewList = glad_debug_impl_glNewList;
PFNGLCOLOR4USPROC glad_glColor4us;
void APIENTRY glad_debug_impl_glColor4us(GLushort arg0, GLushort arg1, GLushort arg2, GLushort arg3) {    
    _pre_call_callback("glColor4us", (void*)glColor4us, 4, arg0, arg1, arg2, arg3);
     glad_glColor4us(arg0, arg1, arg2, arg3);
    _post_call_callback("glColor4us", (void*)glColor4us, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLCOLOR4USPROC glad_debug_glColor4us = glad_debug_impl_glColor4us;
PFNGLLINKPROGRAMPROC glad_glLinkProgram;
void APIENTRY glad_debug_impl_glLinkProgram(GLuint arg0) {    
    _pre_call_callback("glLinkProgram", (void*)glLinkProgram, 1, arg0);
     glad_glLinkProgram(arg0);
    _post_call_callback("glLinkProgram", (void*)glLinkProgram, 1, arg0);
    
}
PFNGLLINKPROGRAMPROC glad_debug_glLinkProgram = glad_debug_impl_glLinkProgram;
PFNGLHINTPROC glad_glHint;
void APIENTRY glad_debug_impl_glHint(GLenum arg0, GLenum arg1) {    
    _pre_call_callback("glHint", (void*)glHint, 2, arg0, arg1);
     glad_glHint(arg0, arg1);
    _post_call_callback("glHint", (void*)glHint, 2, arg0, arg1);
    
}
PFNGLHINTPROC glad_debug_glHint = glad_debug_impl_glHint;
PFNGLRECTSPROC glad_glRects;
void APIENTRY glad_debug_impl_glRects(GLshort arg0, GLshort arg1, GLshort arg2, GLshort arg3) {    
    _pre_call_callback("glRects", (void*)glRects, 4, arg0, arg1, arg2, arg3);
     glad_glRects(arg0, arg1, arg2, arg3);
    _post_call_callback("glRects", (void*)glRects, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLRECTSPROC glad_debug_glRects = glad_debug_impl_glRects;
PFNGLTEXCOORD2DVPROC glad_glTexCoord2dv;
void APIENTRY glad_debug_impl_glTexCoord2dv(const GLdouble * arg0) {    
    _pre_call_callback("glTexCoord2dv", (void*)glTexCoord2dv, 1, arg0);
     glad_glTexCoord2dv(arg0);
    _post_call_callback("glTexCoord2dv", (void*)glTexCoord2dv, 1, arg0);
    
}
PFNGLTEXCOORD2DVPROC glad_debug_glTexCoord2dv = glad_debug_impl_glTexCoord2dv;
PFNGLRASTERPOS4IVPROC glad_glRasterPos4iv;
void APIENTRY glad_debug_impl_glRasterPos4iv(const GLint * arg0) {    
    _pre_call_callback("glRasterPos4iv", (void*)glRasterPos4iv, 1, arg0);
     glad_glRasterPos4iv(arg0);
    _post_call_callback("glRasterPos4iv", (void*)glRasterPos4iv, 1, arg0);
    
}
PFNGLRASTERPOS4IVPROC glad_debug_glRasterPos4iv = glad_debug_impl_glRasterPos4iv;
PFNGLGETSTRINGPROC glad_glGetString;
const GLubyte * APIENTRY glad_debug_impl_glGetString(GLenum arg0) {    
    const GLubyte * ret;
    _pre_call_callback("glGetString", (void*)glGetString, 1, arg0);
    ret =  glad_glGetString(arg0);
    _post_call_callback("glGetString", (void*)glGetString, 1, arg0);
    return ret;
}
PFNGLGETSTRINGPROC glad_debug_glGetString = glad_debug_impl_glGetString;
PFNGLEDGEFLAGVPROC glad_glEdgeFlagv;
void APIENTRY glad_debug_impl_glEdgeFlagv(const GLboolean * arg0) {    
    _pre_call_callback("glEdgeFlagv", (void*)glEdgeFlagv, 1, arg0);
     glad_glEdgeFlagv(arg0);
    _post_call_callback("glEdgeFlagv", (void*)glEdgeFlagv, 1, arg0);
    
}
PFNGLEDGEFLAGVPROC glad_debug_glEdgeFlagv = glad_debug_impl_glEdgeFlagv;
PFNGLDETACHSHADERPROC glad_glDetachShader;
void APIENTRY glad_debug_impl_glDetachShader(GLuint arg0, GLuint arg1) {    
    _pre_call_callback("glDetachShader", (void*)glDetachShader, 2, arg0, arg1);
     glad_glDetachShader(arg0, arg1);
    _post_call_callback("glDetachShader", (void*)glDetachShader, 2, arg0, arg1);
    
}
PFNGLDETACHSHADERPROC glad_debug_glDetachShader = glad_debug_impl_glDetachShader;
PFNGLSCALEFPROC glad_glScalef;
void APIENTRY glad_debug_impl_glScalef(GLfloat arg0, GLfloat arg1, GLfloat arg2) {    
    _pre_call_callback("glScalef", (void*)glScalef, 3, arg0, arg1, arg2);
     glad_glScalef(arg0, arg1, arg2);
    _post_call_callback("glScalef", (void*)glScalef, 3, arg0, arg1, arg2);
    
}
PFNGLSCALEFPROC glad_debug_glScalef = glad_debug_impl_glScalef;
PFNGLENDQUERYPROC glad_glEndQuery;
void APIENTRY glad_debug_impl_glEndQuery(GLenum arg0) {    
    _pre_call_callback("glEndQuery", (void*)glEndQuery, 1, arg0);
     glad_glEndQuery(arg0);
    _post_call_callback("glEndQuery", (void*)glEndQuery, 1, arg0);
    
}
PFNGLENDQUERYPROC glad_debug_glEndQuery = glad_debug_impl_glEndQuery;
PFNGLSCALEDPROC glad_glScaled;
void APIENTRY glad_debug_impl_glScaled(GLdouble arg0, GLdouble arg1, GLdouble arg2) {    
    _pre_call_callback("glScaled", (void*)glScaled, 3, arg0, arg1, arg2);
     glad_glScaled(arg0, arg1, arg2);
    _post_call_callback("glScaled", (void*)glScaled, 3, arg0, arg1, arg2);
    
}
PFNGLSCALEDPROC glad_debug_glScaled = glad_debug_impl_glScaled;
PFNGLEDGEFLAGPOINTERPROC glad_glEdgeFlagPointer;
void APIENTRY glad_debug_impl_glEdgeFlagPointer(GLsizei arg0, const void * arg1) {    
    _pre_call_callback("glEdgeFlagPointer", (void*)glEdgeFlagPointer, 2, arg0, arg1);
     glad_glEdgeFlagPointer(arg0, arg1);
    _post_call_callback("glEdgeFlagPointer", (void*)glEdgeFlagPointer, 2, arg0, arg1);
    
}
PFNGLEDGEFLAGPOINTERPROC glad_debug_glEdgeFlagPointer = glad_debug_impl_glEdgeFlagPointer;
PFNGLCOPYPIXELSPROC glad_glCopyPixels;
void APIENTRY glad_debug_impl_glCopyPixels(GLint arg0, GLint arg1, GLsizei arg2, GLsizei arg3, GLenum arg4) {    
    _pre_call_callback("glCopyPixels", (void*)glCopyPixels, 5, arg0, arg1, arg2, arg3, arg4);
     glad_glCopyPixels(arg0, arg1, arg2, arg3, arg4);
    _post_call_callback("glCopyPixels", (void*)glCopyPixels, 5, arg0, arg1, arg2, arg3, arg4);
    
}
PFNGLCOPYPIXELSPROC glad_debug_glCopyPixels = glad_debug_impl_glCopyPixels;
PFNGLPOPATTRIBPROC glad_glPopAttrib;
void APIENTRY glad_debug_impl_glPopAttrib(void) {    
    _pre_call_callback("glPopAttrib", (void*)glPopAttrib, 0);
     glad_glPopAttrib();
    _post_call_callback("glPopAttrib", (void*)glPopAttrib, 0);
    
}
PFNGLPOPATTRIBPROC glad_debug_glPopAttrib = glad_debug_impl_glPopAttrib;
PFNGLDELETETEXTURESPROC glad_glDeleteTextures;
void APIENTRY glad_debug_impl_glDeleteTextures(GLsizei arg0, const GLuint * arg1) {    
    _pre_call_callback("glDeleteTextures", (void*)glDeleteTextures, 2, arg0, arg1);
     glad_glDeleteTextures(arg0, arg1);
    _post_call_callback("glDeleteTextures", (void*)glDeleteTextures, 2, arg0, arg1);
    
}
PFNGLDELETETEXTURESPROC glad_debug_glDeleteTextures = glad_debug_impl_glDeleteTextures;
PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate;
void APIENTRY glad_debug_impl_glStencilOpSeparate(GLenum arg0, GLenum arg1, GLenum arg2, GLenum arg3) {    
    _pre_call_callback("glStencilOpSeparate", (void*)glStencilOpSeparate, 4, arg0, arg1, arg2, arg3);
     glad_glStencilOpSeparate(arg0, arg1, arg2, arg3);
    _post_call_callback("glStencilOpSeparate", (void*)glStencilOpSeparate, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLSTENCILOPSEPARATEPROC glad_debug_glStencilOpSeparate = glad_debug_impl_glStencilOpSeparate;
PFNGLDELETEQUERIESPROC glad_glDeleteQueries;
void APIENTRY glad_debug_impl_glDeleteQueries(GLsizei arg0, const GLuint * arg1) {    
    _pre_call_callback("glDeleteQueries", (void*)glDeleteQueries, 2, arg0, arg1);
     glad_glDeleteQueries(arg0, arg1);
    _post_call_callback("glDeleteQueries", (void*)glDeleteQueries, 2, arg0, arg1);
    
}
PFNGLDELETEQUERIESPROC glad_debug_glDeleteQueries = glad_debug_impl_glDeleteQueries;
PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f;
void APIENTRY glad_debug_impl_glVertexAttrib4f(GLuint arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3, GLfloat arg4) {    
    _pre_call_callback("glVertexAttrib4f", (void*)glVertexAttrib4f, 5, arg0, arg1, arg2, arg3, arg4);
     glad_glVertexAttrib4f(arg0, arg1, arg2, arg3, arg4);
    _post_call_callback("glVertexAttrib4f", (void*)glVertexAttrib4f, 5, arg0, arg1, arg2, arg3, arg4);
    
}
PFNGLVERTEXATTRIB4FPROC glad_debug_glVertexAttrib4f = glad_debug_impl_glVertexAttrib4f;
PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d;
void APIENTRY glad_debug_impl_glVertexAttrib4d(GLuint arg0, GLdouble arg1, GLdouble arg2, GLdouble arg3, GLdouble arg4) {    
    _pre_call_callback("glVertexAttrib4d", (void*)glVertexAttrib4d, 5, arg0, arg1, arg2, arg3, arg4);
     glad_glVertexAttrib4d(arg0, arg1, arg2, arg3, arg4);
    _post_call_callback("glVertexAttrib4d", (void*)glVertexAttrib4d, 5, arg0, arg1, arg2, arg3, arg4);
    
}
PFNGLVERTEXATTRIB4DPROC glad_debug_glVertexAttrib4d = glad_debug_impl_glVertexAttrib4d;
PFNGLINITNAMESPROC glad_glInitNames;
void APIENTRY glad_debug_impl_glInitNames(void) {    
    _pre_call_callback("glInitNames", (void*)glInitNames, 0);
     glad_glInitNames();
    _post_call_callback("glInitNames", (void*)glInitNames, 0);
    
}
PFNGLINITNAMESPROC glad_debug_glInitNames = glad_debug_impl_glInitNames;
PFNGLCOLOR3DVPROC glad_glColor3dv;
void APIENTRY glad_debug_impl_glColor3dv(const GLdouble * arg0) {    
    _pre_call_callback("glColor3dv", (void*)glColor3dv, 1, arg0);
     glad_glColor3dv(arg0);
    _post_call_callback("glColor3dv", (void*)glColor3dv, 1, arg0);
    
}
PFNGLCOLOR3DVPROC glad_debug_glColor3dv = glad_debug_impl_glColor3dv;
PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv;
void APIENTRY glad_debug_impl_glGetTexParameteriv(GLenum arg0, GLenum arg1, GLint * arg2) {    
    _pre_call_callback("glGetTexParameteriv", (void*)glGetTexParameteriv, 3, arg0, arg1, arg2);
     glad_glGetTexParameteriv(arg0, arg1, arg2);
    _post_call_callback("glGetTexParameteriv", (void*)glGetTexParameteriv, 3, arg0, arg1, arg2);
    
}
PFNGLGETTEXPARAMETERIVPROC glad_debug_glGetTexParameteriv = glad_debug_impl_glGetTexParameteriv;
PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s;
void APIENTRY glad_debug_impl_glVertexAttrib4s(GLuint arg0, GLshort arg1, GLshort arg2, GLshort arg3, GLshort arg4) {    
    _pre_call_callback("glVertexAttrib4s", (void*)glVertexAttrib4s, 5, arg0, arg1, arg2, arg3, arg4);
     glad_glVertexAttrib4s(arg0, arg1, arg2, arg3, arg4);
    _post_call_callback("glVertexAttrib4s", (void*)glVertexAttrib4s, 5, arg0, arg1, arg2, arg3, arg4);
    
}
PFNGLVERTEXATTRIB4SPROC glad_debug_glVertexAttrib4s = glad_debug_impl_glVertexAttrib4s;
PFNGLCOLORMATERIALPROC glad_glColorMaterial;
void APIENTRY glad_debug_impl_glColorMaterial(GLenum arg0, GLenum arg1) {    
    _pre_call_callback("glColorMaterial", (void*)glColorMaterial, 2, arg0, arg1);
     glad_glColorMaterial(arg0, arg1);
    _post_call_callback("glColorMaterial", (void*)glColorMaterial, 2, arg0, arg1);
    
}
PFNGLCOLORMATERIALPROC glad_debug_glColorMaterial = glad_debug_impl_glColorMaterial;
PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage;
void APIENTRY glad_debug_impl_glSampleCoverage(GLfloat arg0, GLboolean arg1) {    
    _pre_call_callback("glSampleCoverage", (void*)glSampleCoverage, 2, arg0, arg1);
     glad_glSampleCoverage(arg0, arg1);
    _post_call_callback("glSampleCoverage", (void*)glSampleCoverage, 2, arg0, arg1);
    
}
PFNGLSAMPLECOVERAGEPROC glad_debug_glSampleCoverage = glad_debug_impl_glSampleCoverage;
PFNGLUNIFORM1FPROC glad_glUniform1f;
void APIENTRY glad_debug_impl_glUniform1f(GLint arg0, GLfloat arg1) {    
    _pre_call_callback("glUniform1f", (void*)glUniform1f, 2, arg0, arg1);
     glad_glUniform1f(arg0, arg1);
    _post_call_callback("glUniform1f", (void*)glUniform1f, 2, arg0, arg1);
    
}
PFNGLUNIFORM1FPROC glad_debug_glUniform1f = glad_debug_impl_glUniform1f;
PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv;
void APIENTRY glad_debug_impl_glGetVertexAttribfv(GLuint arg0, GLenum arg1, GLfloat * arg2) {    
    _pre_call_callback("glGetVertexAttribfv", (void*)glGetVertexAttribfv, 3, arg0, arg1, arg2);
     glad_glGetVertexAttribfv(arg0, arg1, arg2);
    _post_call_callback("glGetVertexAttribfv", (void*)glGetVertexAttribfv, 3, arg0, arg1, arg2);
    
}
PFNGLGETVERTEXATTRIBFVPROC glad_debug_glGetVertexAttribfv = glad_debug_impl_glGetVertexAttribfv;
PFNGLRENDERMODEPROC glad_glRenderMode;
GLint APIENTRY glad_debug_impl_glRenderMode(GLenum arg0) {    
    GLint ret;
    _pre_call_callback("glRenderMode", (void*)glRenderMode, 1, arg0);
    ret =  glad_glRenderMode(arg0);
    _post_call_callback("glRenderMode", (void*)glRenderMode, 1, arg0);
    return ret;
}
PFNGLRENDERMODEPROC glad_debug_glRenderMode = glad_debug_impl_glRenderMode;
PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage;
void APIENTRY glad_debug_impl_glGetCompressedTexImage(GLenum arg0, GLint arg1, void * arg2) {    
    _pre_call_callback("glGetCompressedTexImage", (void*)glGetCompressedTexImage, 3, arg0, arg1, arg2);
     glad_glGetCompressedTexImage(arg0, arg1, arg2);
    _post_call_callback("glGetCompressedTexImage", (void*)glGetCompressedTexImage, 3, arg0, arg1, arg2);
    
}
PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_debug_glGetCompressedTexImage = glad_debug_impl_glGetCompressedTexImage;
PFNGLWINDOWPOS2DVPROC glad_glWindowPos2dv;
void APIENTRY glad_debug_impl_glWindowPos2dv(const GLdouble * arg0) {    
    _pre_call_callback("glWindowPos2dv", (void*)glWindowPos2dv, 1, arg0);
     glad_glWindowPos2dv(arg0);
    _post_call_callback("glWindowPos2dv", (void*)glWindowPos2dv, 1, arg0);
    
}
PFNGLWINDOWPOS2DVPROC glad_debug_glWindowPos2dv = glad_debug_impl_glWindowPos2dv;
PFNGLUNIFORM1IPROC glad_glUniform1i;
void APIENTRY glad_debug_impl_glUniform1i(GLint arg0, GLint arg1) {    
    _pre_call_callback("glUniform1i", (void*)glUniform1i, 2, arg0, arg1);
     glad_glUniform1i(arg0, arg1);
    _post_call_callback("glUniform1i", (void*)glUniform1i, 2, arg0, arg1);
    
}
PFNGLUNIFORM1IPROC glad_debug_glUniform1i = glad_debug_impl_glUniform1i;
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("glGetActiveAttrib", (void*)glGetActiveAttrib, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
     glad_glGetActiveAttrib(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
    _post_call_callback("glGetActiveAttrib", (void*)glGetActiveAttrib, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
    
}
PFNGLGETACTIVEATTRIBPROC glad_debug_glGetActiveAttrib = glad_debug_impl_glGetActiveAttrib;
PFNGLUNIFORM3IPROC glad_glUniform3i;
void APIENTRY glad_debug_impl_glUniform3i(GLint arg0, GLint arg1, GLint arg2, GLint arg3) {    
    _pre_call_callback("glUniform3i", (void*)glUniform3i, 4, arg0, arg1, arg2, arg3);
     glad_glUniform3i(arg0, arg1, arg2, arg3);
    _post_call_callback("glUniform3i", (void*)glUniform3i, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLUNIFORM3IPROC glad_debug_glUniform3i = glad_debug_impl_glUniform3i;
PFNGLPIXELTRANSFERIPROC glad_glPixelTransferi;
void APIENTRY glad_debug_impl_glPixelTransferi(GLenum arg0, GLint arg1) {    
    _pre_call_callback("glPixelTransferi", (void*)glPixelTransferi, 2, arg0, arg1);
     glad_glPixelTransferi(arg0, arg1);
    _post_call_callback("glPixelTransferi", (void*)glPixelTransferi, 2, arg0, arg1);
    
}
PFNGLPIXELTRANSFERIPROC glad_debug_glPixelTransferi = glad_debug_impl_glPixelTransferi;
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("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("glTexSubImage2D", (void*)glTexSubImage2D, 9, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
    
}
PFNGLTEXSUBIMAGE2DPROC glad_debug_glTexSubImage2D = glad_debug_impl_glTexSubImage2D;
PFNGLDISABLEPROC glad_glDisable;
void APIENTRY glad_debug_impl_glDisable(GLenum arg0) {    
    _pre_call_callback("glDisable", (void*)glDisable, 1, arg0);
     glad_glDisable(arg0);
    _post_call_callback("glDisable", (void*)glDisable, 1, arg0);
    
}
PFNGLDISABLEPROC glad_debug_glDisable = glad_debug_impl_glDisable;
PFNGLLOGICOPPROC glad_glLogicOp;
void APIENTRY glad_debug_impl_glLogicOp(GLenum arg0) {    
    _pre_call_callback("glLogicOp", (void*)glLogicOp, 1, arg0);
     glad_glLogicOp(arg0);
    _post_call_callback("glLogicOp", (void*)glLogicOp, 1, arg0);
    
}
PFNGLLOGICOPPROC glad_debug_glLogicOp = glad_debug_impl_glLogicOp;
PFNGLEVALPOINT2PROC glad_glEvalPoint2;
void APIENTRY glad_debug_impl_glEvalPoint2(GLint arg0, GLint arg1) {    
    _pre_call_callback("glEvalPoint2", (void*)glEvalPoint2, 2, arg0, arg1);
     glad_glEvalPoint2(arg0, arg1);
    _post_call_callback("glEvalPoint2", (void*)glEvalPoint2, 2, arg0, arg1);
    
}
PFNGLEVALPOINT2PROC glad_debug_glEvalPoint2 = glad_debug_impl_glEvalPoint2;
PFNGLPIXELTRANSFERFPROC glad_glPixelTransferf;
void APIENTRY glad_debug_impl_glPixelTransferf(GLenum arg0, GLfloat arg1) {    
    _pre_call_callback("glPixelTransferf", (void*)glPixelTransferf, 2, arg0, arg1);
     glad_glPixelTransferf(arg0, arg1);
    _post_call_callback("glPixelTransferf", (void*)glPixelTransferf, 2, arg0, arg1);
    
}
PFNGLPIXELTRANSFERFPROC glad_debug_glPixelTransferf = glad_debug_impl_glPixelTransferf;
PFNGLSECONDARYCOLOR3IPROC glad_glSecondaryColor3i;
void APIENTRY glad_debug_impl_glSecondaryColor3i(GLint arg0, GLint arg1, GLint arg2) {    
    _pre_call_callback("glSecondaryColor3i", (void*)glSecondaryColor3i, 3, arg0, arg1, arg2);
     glad_glSecondaryColor3i(arg0, arg1, arg2);
    _post_call_callback("glSecondaryColor3i", (void*)glSecondaryColor3i, 3, arg0, arg1, arg2);
    
}
PFNGLSECONDARYCOLOR3IPROC glad_debug_glSecondaryColor3i = glad_debug_impl_glSecondaryColor3i;
PFNGLCOLOR3FPROC glad_glColor3f;
void APIENTRY glad_debug_impl_glColor3f(GLfloat arg0, GLfloat arg1, GLfloat arg2) {    
    _pre_call_callback("glColor3f", (void*)glColor3f, 3, arg0, arg1, arg2);
     glad_glColor3f(arg0, arg1, arg2);
    _post_call_callback("glColor3f", (void*)glColor3f, 3, arg0, arg1, arg2);
    
}
PFNGLCOLOR3FPROC glad_debug_glColor3f = glad_debug_impl_glColor3f;
PFNGLGETTEXENVFVPROC glad_glGetTexEnvfv;
void APIENTRY glad_debug_impl_glGetTexEnvfv(GLenum arg0, GLenum arg1, GLfloat * arg2) {    
    _pre_call_callback("glGetTexEnvfv", (void*)glGetTexEnvfv, 3, arg0, arg1, arg2);
     glad_glGetTexEnvfv(arg0, arg1, arg2);
    _post_call_callback("glGetTexEnvfv", (void*)glGetTexEnvfv, 3, arg0, arg1, arg2);
    
}
PFNGLGETTEXENVFVPROC glad_debug_glGetTexEnvfv = glad_debug_impl_glGetTexEnvfv;
PFNGLRECTFVPROC glad_glRectfv;
void APIENTRY glad_debug_impl_glRectfv(const GLfloat * arg0, const GLfloat * arg1) {    
    _pre_call_callback("glRectfv", (void*)glRectfv, 2, arg0, arg1);
     glad_glRectfv(arg0, arg1);
    _post_call_callback("glRectfv", (void*)glRectfv, 2, arg0, arg1);
    
}
PFNGLRECTFVPROC glad_debug_glRectfv = glad_debug_impl_glRectfv;
PFNGLCULLFACEPROC glad_glCullFace;
void APIENTRY glad_debug_impl_glCullFace(GLenum arg0) {    
    _pre_call_callback("glCullFace", (void*)glCullFace, 1, arg0);
     glad_glCullFace(arg0);
    _post_call_callback("glCullFace", (void*)glCullFace, 1, arg0);
    
}
PFNGLCULLFACEPROC glad_debug_glCullFace = glad_debug_impl_glCullFace;
PFNGLGETLIGHTFVPROC glad_glGetLightfv;
void APIENTRY glad_debug_impl_glGetLightfv(GLenum arg0, GLenum arg1, GLfloat * arg2) {    
    _pre_call_callback("glGetLightfv", (void*)glGetLightfv, 3, arg0, arg1, arg2);
     glad_glGetLightfv(arg0, arg1, arg2);
    _post_call_callback("glGetLightfv", (void*)glGetLightfv, 3, arg0, arg1, arg2);
    
}
PFNGLGETLIGHTFVPROC glad_debug_glGetLightfv = glad_debug_impl_glGetLightfv;
PFNGLCOLOR3DPROC glad_glColor3d;
void APIENTRY glad_debug_impl_glColor3d(GLdouble arg0, GLdouble arg1, GLdouble arg2) {    
    _pre_call_callback("glColor3d", (void*)glColor3d, 3, arg0, arg1, arg2);
     glad_glColor3d(arg0, arg1, arg2);
    _post_call_callback("glColor3d", (void*)glColor3d, 3, arg0, arg1, arg2);
    
}
PFNGLCOLOR3DPROC glad_debug_glColor3d = glad_debug_impl_glColor3d;
PFNGLTEXGENDPROC glad_glTexGend;
void APIENTRY glad_debug_impl_glTexGend(GLenum arg0, GLenum arg1, GLdouble arg2) {    
    _pre_call_callback("glTexGend", (void*)glTexGend, 3, arg0, arg1, arg2);
     glad_glTexGend(arg0, arg1, arg2);
    _post_call_callback("glTexGend", (void*)glTexGend, 3, arg0, arg1, arg2);
    
}
PFNGLTEXGENDPROC glad_debug_glTexGend = glad_debug_impl_glTexGend;
PFNGLTEXGENIPROC glad_glTexGeni;
void APIENTRY glad_debug_impl_glTexGeni(GLenum arg0, GLenum arg1, GLint arg2) {    
    _pre_call_callback("glTexGeni", (void*)glTexGeni, 3, arg0, arg1, arg2);
     glad_glTexGeni(arg0, arg1, arg2);
    _post_call_callback("glTexGeni", (void*)glTexGeni, 3, arg0, arg1, arg2);
    
}
PFNGLTEXGENIPROC glad_debug_glTexGeni = glad_debug_impl_glTexGeni;
PFNGLMULTITEXCOORD3SPROC glad_glMultiTexCoord3s;
void APIENTRY glad_debug_impl_glMultiTexCoord3s(GLenum arg0, GLshort arg1, GLshort arg2, GLshort arg3) {    
    _pre_call_callback("glMultiTexCoord3s", (void*)glMultiTexCoord3s, 4, arg0, arg1, arg2, arg3);
     glad_glMultiTexCoord3s(arg0, arg1, arg2, arg3);
    _post_call_callback("glMultiTexCoord3s", (void*)glMultiTexCoord3s, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLMULTITEXCOORD3SPROC glad_debug_glMultiTexCoord3s = glad_debug_impl_glMultiTexCoord3s;
PFNGLMULTITEXCOORD3IPROC glad_glMultiTexCoord3i;
void APIENTRY glad_debug_impl_glMultiTexCoord3i(GLenum arg0, GLint arg1, GLint arg2, GLint arg3) {    
    _pre_call_callback("glMultiTexCoord3i", (void*)glMultiTexCoord3i, 4, arg0, arg1, arg2, arg3);
     glad_glMultiTexCoord3i(arg0, arg1, arg2, arg3);
    _post_call_callback("glMultiTexCoord3i", (void*)glMultiTexCoord3i, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLMULTITEXCOORD3IPROC glad_debug_glMultiTexCoord3i = glad_debug_impl_glMultiTexCoord3i;
PFNGLMULTITEXCOORD3FPROC glad_glMultiTexCoord3f;
void APIENTRY glad_debug_impl_glMultiTexCoord3f(GLenum arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3) {    
    _pre_call_callback("glMultiTexCoord3f", (void*)glMultiTexCoord3f, 4, arg0, arg1, arg2, arg3);
     glad_glMultiTexCoord3f(arg0, arg1, arg2, arg3);
    _post_call_callback("glMultiTexCoord3f", (void*)glMultiTexCoord3f, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLMULTITEXCOORD3FPROC glad_debug_glMultiTexCoord3f = glad_debug_impl_glMultiTexCoord3f;
PFNGLMULTITEXCOORD3DPROC glad_glMultiTexCoord3d;
void APIENTRY glad_debug_impl_glMultiTexCoord3d(GLenum arg0, GLdouble arg1, GLdouble arg2, GLdouble arg3) {    
    _pre_call_callback("glMultiTexCoord3d", (void*)glMultiTexCoord3d, 4, arg0, arg1, arg2, arg3);
     glad_glMultiTexCoord3d(arg0, arg1, arg2, arg3);
    _post_call_callback("glMultiTexCoord3d", (void*)glMultiTexCoord3d, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLMULTITEXCOORD3DPROC glad_debug_glMultiTexCoord3d = glad_debug_impl_glMultiTexCoord3d;
PFNGLATTACHSHADERPROC glad_glAttachShader;
void APIENTRY glad_debug_impl_glAttachShader(GLuint arg0, GLuint arg1) {    
    _pre_call_callback("glAttachShader", (void*)glAttachShader, 2, arg0, arg1);
     glad_glAttachShader(arg0, arg1);
    _post_call_callback("glAttachShader", (void*)glAttachShader, 2, arg0, arg1);
    
}
PFNGLATTACHSHADERPROC glad_debug_glAttachShader = glad_debug_impl_glAttachShader;
PFNGLFOGCOORDDVPROC glad_glFogCoorddv;
void APIENTRY glad_debug_impl_glFogCoorddv(const GLdouble * arg0) {    
    _pre_call_callback("glFogCoorddv", (void*)glFogCoorddv, 1, arg0);
     glad_glFogCoorddv(arg0);
    _post_call_callback("glFogCoorddv", (void*)glFogCoorddv, 1, arg0);
    
}
PFNGLFOGCOORDDVPROC glad_debug_glFogCoorddv = glad_debug_impl_glFogCoorddv;
PFNGLGETTEXGENFVPROC glad_glGetTexGenfv;
void APIENTRY glad_debug_impl_glGetTexGenfv(GLenum arg0, GLenum arg1, GLfloat * arg2) {    
    _pre_call_callback("glGetTexGenfv", (void*)glGetTexGenfv, 3, arg0, arg1, arg2);
     glad_glGetTexGenfv(arg0, arg1, arg2);
    _post_call_callback("glGetTexGenfv", (void*)glGetTexGenfv, 3, arg0, arg1, arg2);
    
}
PFNGLGETTEXGENFVPROC glad_debug_glGetTexGenfv = glad_debug_impl_glGetTexGenfv;
PFNGLFOGCOORDPOINTERPROC glad_glFogCoordPointer;
void APIENTRY glad_debug_impl_glFogCoordPointer(GLenum arg0, GLsizei arg1, const void * arg2) {    
    _pre_call_callback("glFogCoordPointer", (void*)glFogCoordPointer, 3, arg0, arg1, arg2);
     glad_glFogCoordPointer(arg0, arg1, arg2);
    _post_call_callback("glFogCoordPointer", (void*)glFogCoordPointer, 3, arg0, arg1, arg2);
    
}
PFNGLFOGCOORDPOINTERPROC glad_debug_glFogCoordPointer = glad_debug_impl_glFogCoordPointer;
PFNGLTEXGENIVPROC glad_glTexGeniv;
void APIENTRY glad_debug_impl_glTexGeniv(GLenum arg0, GLenum arg1, const GLint * arg2) {    
    _pre_call_callback("glTexGeniv", (void*)glTexGeniv, 3, arg0, arg1, arg2);
     glad_glTexGeniv(arg0, arg1, arg2);
    _post_call_callback("glTexGeniv", (void*)glTexGeniv, 3, arg0, arg1, arg2);
    
}
PFNGLTEXGENIVPROC glad_debug_glTexGeniv = glad_debug_impl_glTexGeniv;
PFNGLRASTERPOS2DVPROC glad_glRasterPos2dv;
void APIENTRY glad_debug_impl_glRasterPos2dv(const GLdouble * arg0) {    
    _pre_call_callback("glRasterPos2dv", (void*)glRasterPos2dv, 1, arg0);
     glad_glRasterPos2dv(arg0);
    _post_call_callback("glRasterPos2dv", (void*)glRasterPos2dv, 1, arg0);
    
}
PFNGLRASTERPOS2DVPROC glad_debug_glRasterPos2dv = glad_debug_impl_glRasterPos2dv;
PFNGLSECONDARYCOLOR3DVPROC glad_glSecondaryColor3dv;
void APIENTRY glad_debug_impl_glSecondaryColor3dv(const GLdouble * arg0) {    
    _pre_call_callback("glSecondaryColor3dv", (void*)glSecondaryColor3dv, 1, arg0);
     glad_glSecondaryColor3dv(arg0);
    _post_call_callback("glSecondaryColor3dv", (void*)glSecondaryColor3dv, 1, arg0);
    
}
PFNGLSECONDARYCOLOR3DVPROC glad_debug_glSecondaryColor3dv = glad_debug_impl_glSecondaryColor3dv;
PFNGLCLIENTACTIVETEXTUREPROC glad_glClientActiveTexture;
void APIENTRY glad_debug_impl_glClientActiveTexture(GLenum arg0) {    
    _pre_call_callback("glClientActiveTexture", (void*)glClientActiveTexture, 1, arg0);
     glad_glClientActiveTexture(arg0);
    _post_call_callback("glClientActiveTexture", (void*)glClientActiveTexture, 1, arg0);
    
}
PFNGLCLIENTACTIVETEXTUREPROC glad_debug_glClientActiveTexture = glad_debug_impl_glClientActiveTexture;
PFNGLSECONDARYCOLOR3USPROC glad_glSecondaryColor3us;
void APIENTRY glad_debug_impl_glSecondaryColor3us(GLushort arg0, GLushort arg1, GLushort arg2) {    
    _pre_call_callback("glSecondaryColor3us", (void*)glSecondaryColor3us, 3, arg0, arg1, arg2);
     glad_glSecondaryColor3us(arg0, arg1, arg2);
    _post_call_callback("glSecondaryColor3us", (void*)glSecondaryColor3us, 3, arg0, arg1, arg2);
    
}
PFNGLSECONDARYCOLOR3USPROC glad_debug_glSecondaryColor3us = glad_debug_impl_glSecondaryColor3us;
PFNGLTEXENVFVPROC glad_glTexEnvfv;
void APIENTRY glad_debug_impl_glTexEnvfv(GLenum arg0, GLenum arg1, const GLfloat * arg2) {    
    _pre_call_callback("glTexEnvfv", (void*)glTexEnvfv, 3, arg0, arg1, arg2);
     glad_glTexEnvfv(arg0, arg1, arg2);
    _post_call_callback("glTexEnvfv", (void*)glTexEnvfv, 3, arg0, arg1, arg2);
    
}
PFNGLTEXENVFVPROC glad_debug_glTexEnvfv = glad_debug_impl_glTexEnvfv;
PFNGLREADBUFFERPROC glad_glReadBuffer;
void APIENTRY glad_debug_impl_glReadBuffer(GLenum arg0) {    
    _pre_call_callback("glReadBuffer", (void*)glReadBuffer, 1, arg0);
     glad_glReadBuffer(arg0);
    _post_call_callback("glReadBuffer", (void*)glReadBuffer, 1, arg0);
    
}
PFNGLREADBUFFERPROC glad_debug_glReadBuffer = glad_debug_impl_glReadBuffer;
PFNGLWINDOWPOS3FVPROC glad_glWindowPos3fv;
void APIENTRY glad_debug_impl_glWindowPos3fv(const GLfloat * arg0) {    
    _pre_call_callback("glWindowPos3fv", (void*)glWindowPos3fv, 1, arg0);
     glad_glWindowPos3fv(arg0);
    _post_call_callback("glWindowPos3fv", (void*)glWindowPos3fv, 1, arg0);
    
}
PFNGLWINDOWPOS3FVPROC glad_debug_glWindowPos3fv = glad_debug_impl_glWindowPos3fv;
PFNGLLIGHTMODELFVPROC glad_glLightModelfv;
void APIENTRY glad_debug_impl_glLightModelfv(GLenum arg0, const GLfloat * arg1) {    
    _pre_call_callback("glLightModelfv", (void*)glLightModelfv, 2, arg0, arg1);
     glad_glLightModelfv(arg0, arg1);
    _post_call_callback("glLightModelfv", (void*)glLightModelfv, 2, arg0, arg1);
    
}
PFNGLLIGHTMODELFVPROC glad_debug_glLightModelfv = glad_debug_impl_glLightModelfv;
PFNGLDELETELISTSPROC glad_glDeleteLists;
void APIENTRY glad_debug_impl_glDeleteLists(GLuint arg0, GLsizei arg1) {    
    _pre_call_callback("glDeleteLists", (void*)glDeleteLists, 2, arg0, arg1);
     glad_glDeleteLists(arg0, arg1);
    _post_call_callback("glDeleteLists", (void*)glDeleteLists, 2, arg0, arg1);
    
}
PFNGLDELETELISTSPROC glad_debug_glDeleteLists = glad_debug_impl_glDeleteLists;
PFNGLGETCLIPPLANEPROC glad_glGetClipPlane;
void APIENTRY glad_debug_impl_glGetClipPlane(GLenum arg0, GLdouble * arg1) {    
    _pre_call_callback("glGetClipPlane", (void*)glGetClipPlane, 2, arg0, arg1);
     glad_glGetClipPlane(arg0, arg1);
    _post_call_callback("glGetClipPlane", (void*)glGetClipPlane, 2, arg0, arg1);
    
}
PFNGLGETCLIPPLANEPROC glad_debug_glGetClipPlane = glad_debug_impl_glGetClipPlane;
PFNGLVERTEX4DVPROC glad_glVertex4dv;
void APIENTRY glad_debug_impl_glVertex4dv(const GLdouble * arg0) {    
    _pre_call_callback("glVertex4dv", (void*)glVertex4dv, 1, arg0);
     glad_glVertex4dv(arg0);
    _post_call_callback("glVertex4dv", (void*)glVertex4dv, 1, arg0);
    
}
PFNGLVERTEX4DVPROC glad_debug_glVertex4dv = glad_debug_impl_glVertex4dv;
PFNGLTEXCOORD2DPROC glad_glTexCoord2d;
void APIENTRY glad_debug_impl_glTexCoord2d(GLdouble arg0, GLdouble arg1) {    
    _pre_call_callback("glTexCoord2d", (void*)glTexCoord2d, 2, arg0, arg1);
     glad_glTexCoord2d(arg0, arg1);
    _post_call_callback("glTexCoord2d", (void*)glTexCoord2d, 2, arg0, arg1);
    
}
PFNGLTEXCOORD2DPROC glad_debug_glTexCoord2d = glad_debug_impl_glTexCoord2d;
PFNGLPOPMATRIXPROC glad_glPopMatrix;
void APIENTRY glad_debug_impl_glPopMatrix(void) {    
    _pre_call_callback("glPopMatrix", (void*)glPopMatrix, 0);
     glad_glPopMatrix();
    _post_call_callback("glPopMatrix", (void*)glPopMatrix, 0);
    
}
PFNGLPOPMATRIXPROC glad_debug_glPopMatrix = glad_debug_impl_glPopMatrix;
PFNGLTEXCOORD2FPROC glad_glTexCoord2f;
void APIENTRY glad_debug_impl_glTexCoord2f(GLfloat arg0, GLfloat arg1) {    
    _pre_call_callback("glTexCoord2f", (void*)glTexCoord2f, 2, arg0, arg1);
     glad_glTexCoord2f(arg0, arg1);
    _post_call_callback("glTexCoord2f", (void*)glTexCoord2f, 2, arg0, arg1);
    
}
PFNGLTEXCOORD2FPROC glad_debug_glTexCoord2f = glad_debug_impl_glTexCoord2f;
PFNGLCOLOR4IVPROC glad_glColor4iv;
void APIENTRY glad_debug_impl_glColor4iv(const GLint * arg0) {    
    _pre_call_callback("glColor4iv", (void*)glColor4iv, 1, arg0);
     glad_glColor4iv(arg0);
    _post_call_callback("glColor4iv", (void*)glColor4iv, 1, arg0);
    
}
PFNGLCOLOR4IVPROC glad_debug_glColor4iv = glad_debug_impl_glColor4iv;
PFNGLINDEXUBVPROC glad_glIndexubv;
void APIENTRY glad_debug_impl_glIndexubv(const GLubyte * arg0) {    
    _pre_call_callback("glIndexubv", (void*)glIndexubv, 1, arg0);
     glad_glIndexubv(arg0);
    _post_call_callback("glIndexubv", (void*)glIndexubv, 1, arg0);
    
}
PFNGLINDEXUBVPROC glad_debug_glIndexubv = glad_debug_impl_glIndexubv;
PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer;
GLboolean APIENTRY glad_debug_impl_glUnmapBuffer(GLenum arg0) {    
    GLboolean ret;
    _pre_call_callback("glUnmapBuffer", (void*)glUnmapBuffer, 1, arg0);
    ret =  glad_glUnmapBuffer(arg0);
    _post_call_callback("glUnmapBuffer", (void*)glUnmapBuffer, 1, arg0);
    return ret;
}
PFNGLUNMAPBUFFERPROC glad_debug_glUnmapBuffer = glad_debug_impl_glUnmapBuffer;
PFNGLTEXCOORD2IPROC glad_glTexCoord2i;
void APIENTRY glad_debug_impl_glTexCoord2i(GLint arg0, GLint arg1) {    
    _pre_call_callback("glTexCoord2i", (void*)glTexCoord2i, 2, arg0, arg1);
     glad_glTexCoord2i(arg0, arg1);
    _post_call_callback("glTexCoord2i", (void*)glTexCoord2i, 2, arg0, arg1);
    
}
PFNGLTEXCOORD2IPROC glad_debug_glTexCoord2i = glad_debug_impl_glTexCoord2i;
PFNGLRASTERPOS4DPROC glad_glRasterPos4d;
void APIENTRY glad_debug_impl_glRasterPos4d(GLdouble arg0, GLdouble arg1, GLdouble arg2, GLdouble arg3) {    
    _pre_call_callback("glRasterPos4d", (void*)glRasterPos4d, 4, arg0, arg1, arg2, arg3);
     glad_glRasterPos4d(arg0, arg1, arg2, arg3);
    _post_call_callback("glRasterPos4d", (void*)glRasterPos4d, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLRASTERPOS4DPROC glad_debug_glRasterPos4d = glad_debug_impl_glRasterPos4d;
PFNGLRASTERPOS4FPROC glad_glRasterPos4f;
void APIENTRY glad_debug_impl_glRasterPos4f(GLfloat arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3) {    
    _pre_call_callback("glRasterPos4f", (void*)glRasterPos4f, 4, arg0, arg1, arg2, arg3);
     glad_glRasterPos4f(arg0, arg1, arg2, arg3);
    _post_call_callback("glRasterPos4f", (void*)glRasterPos4f, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLRASTERPOS4FPROC glad_debug_glRasterPos4f = glad_debug_impl_glRasterPos4f;
PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s;
void APIENTRY glad_debug_impl_glVertexAttrib3s(GLuint arg0, GLshort arg1, GLshort arg2, GLshort arg3) {    
    _pre_call_callback("glVertexAttrib3s", (void*)glVertexAttrib3s, 4, arg0, arg1, arg2, arg3);
     glad_glVertexAttrib3s(arg0, arg1, arg2, arg3);
    _post_call_callback("glVertexAttrib3s", (void*)glVertexAttrib3s, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLVERTEXATTRIB3SPROC glad_debug_glVertexAttrib3s = glad_debug_impl_glVertexAttrib3s;
PFNGLTEXCOORD2SPROC glad_glTexCoord2s;
void APIENTRY glad_debug_impl_glTexCoord2s(GLshort arg0, GLshort arg1) {    
    _pre_call_callback("glTexCoord2s", (void*)glTexCoord2s, 2, arg0, arg1);
     glad_glTexCoord2s(arg0, arg1);
    _post_call_callback("glTexCoord2s", (void*)glTexCoord2s, 2, arg0, arg1);
    
}
PFNGLTEXCOORD2SPROC glad_debug_glTexCoord2s = glad_debug_impl_glTexCoord2s;
PFNGLVERTEX3FVPROC glad_glVertex3fv;
void APIENTRY glad_debug_impl_glVertex3fv(const GLfloat * arg0) {    
    _pre_call_callback("glVertex3fv", (void*)glVertex3fv, 1, arg0);
     glad_glVertex3fv(arg0);
    _post_call_callback("glVertex3fv", (void*)glVertex3fv, 1, arg0);
    
}
PFNGLVERTEX3FVPROC glad_debug_glVertex3fv = glad_debug_impl_glVertex3fv;
PFNGLTEXCOORD4DVPROC glad_glTexCoord4dv;
void APIENTRY glad_debug_impl_glTexCoord4dv(const GLdouble * arg0) {    
    _pre_call_callback("glTexCoord4dv", (void*)glTexCoord4dv, 1, arg0);
     glad_glTexCoord4dv(arg0);
    _post_call_callback("glTexCoord4dv", (void*)glTexCoord4dv, 1, arg0);
    
}
PFNGLTEXCOORD4DVPROC glad_debug_glTexCoord4dv = glad_debug_impl_glTexCoord4dv;
PFNGLMATERIALIVPROC glad_glMaterialiv;
void APIENTRY glad_debug_impl_glMaterialiv(GLenum arg0, GLenum arg1, const GLint * arg2) {    
    _pre_call_callback("glMaterialiv", (void*)glMaterialiv, 3, arg0, arg1, arg2);
     glad_glMaterialiv(arg0, arg1, arg2);
    _post_call_callback("glMaterialiv", (void*)glMaterialiv, 3, arg0, arg1, arg2);
    
}
PFNGLMATERIALIVPROC glad_debug_glMaterialiv = glad_debug_impl_glMaterialiv;
PFNGLISPROGRAMPROC glad_glIsProgram;
GLboolean APIENTRY glad_debug_impl_glIsProgram(GLuint arg0) {    
    GLboolean ret;
    _pre_call_callback("glIsProgram", (void*)glIsProgram, 1, arg0);
    ret =  glad_glIsProgram(arg0);
    _post_call_callback("glIsProgram", (void*)glIsProgram, 1, arg0);
    return ret;
}
PFNGLISPROGRAMPROC glad_debug_glIsProgram = glad_debug_impl_glIsProgram;
PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv;
void APIENTRY glad_debug_impl_glVertexAttrib4bv(GLuint arg0, const GLbyte * arg1) {    
    _pre_call_callback("glVertexAttrib4bv", (void*)glVertexAttrib4bv, 2, arg0, arg1);
     glad_glVertexAttrib4bv(arg0, arg1);
    _post_call_callback("glVertexAttrib4bv", (void*)glVertexAttrib4bv, 2, arg0, arg1);
    
}
PFNGLVERTEXATTRIB4BVPROC glad_debug_glVertexAttrib4bv = glad_debug_impl_glVertexAttrib4bv;
PFNGLVERTEX4SPROC glad_glVertex4s;
void APIENTRY glad_debug_impl_glVertex4s(GLshort arg0, GLshort arg1, GLshort arg2, GLshort arg3) {    
    _pre_call_callback("glVertex4s", (void*)glVertex4s, 4, arg0, arg1, arg2, arg3);
     glad_glVertex4s(arg0, arg1, arg2, arg3);
    _post_call_callback("glVertex4s", (void*)glVertex4s, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLVERTEX4SPROC glad_debug_glVertex4s = glad_debug_impl_glVertex4s;
PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv;
void APIENTRY glad_debug_impl_glVertexAttrib4fv(GLuint arg0, const GLfloat * arg1) {    
    _pre_call_callback("glVertexAttrib4fv", (void*)glVertexAttrib4fv, 2, arg0, arg1);
     glad_glVertexAttrib4fv(arg0, arg1);
    _post_call_callback("glVertexAttrib4fv", (void*)glVertexAttrib4fv, 2, arg0, arg1);
    
}
PFNGLVERTEXATTRIB4FVPROC glad_debug_glVertexAttrib4fv = glad_debug_impl_glVertexAttrib4fv;
PFNGLNORMAL3DVPROC glad_glNormal3dv;
void APIENTRY glad_debug_impl_glNormal3dv(const GLdouble * arg0) {    
    _pre_call_callback("glNormal3dv", (void*)glNormal3dv, 1, arg0);
     glad_glNormal3dv(arg0);
    _post_call_callback("glNormal3dv", (void*)glNormal3dv, 1, arg0);
    
}
PFNGLNORMAL3DVPROC glad_debug_glNormal3dv = glad_debug_impl_glNormal3dv;
PFNGLUNIFORM4IPROC glad_glUniform4i;
void APIENTRY glad_debug_impl_glUniform4i(GLint arg0, GLint arg1, GLint arg2, GLint arg3, GLint arg4) {    
    _pre_call_callback("glUniform4i", (void*)glUniform4i, 5, arg0, arg1, arg2, arg3, arg4);
     glad_glUniform4i(arg0, arg1, arg2, arg3, arg4);
    _post_call_callback("glUniform4i", (void*)glUniform4i, 5, arg0, arg1, arg2, arg3, arg4);
    
}
PFNGLUNIFORM4IPROC glad_debug_glUniform4i = glad_debug_impl_glUniform4i;
PFNGLACTIVETEXTUREPROC glad_glActiveTexture;
void APIENTRY glad_debug_impl_glActiveTexture(GLenum arg0) {    
    _pre_call_callback("glActiveTexture", (void*)glActiveTexture, 1, arg0);
     glad_glActiveTexture(arg0);
    _post_call_callback("glActiveTexture", (void*)glActiveTexture, 1, arg0);
    
}
PFNGLACTIVETEXTUREPROC glad_debug_glActiveTexture = glad_debug_impl_glActiveTexture;
PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray;
void APIENTRY glad_debug_impl_glEnableVertexAttribArray(GLuint arg0) {    
    _pre_call_callback("glEnableVertexAttribArray", (void*)glEnableVertexAttribArray, 1, arg0);
     glad_glEnableVertexAttribArray(arg0);
    _post_call_callback("glEnableVertexAttribArray", (void*)glEnableVertexAttribArray, 1, arg0);
    
}
PFNGLENABLEVERTEXATTRIBARRAYPROC glad_debug_glEnableVertexAttribArray = glad_debug_impl_glEnableVertexAttribArray;
PFNGLROTATEDPROC glad_glRotated;
void APIENTRY glad_debug_impl_glRotated(GLdouble arg0, GLdouble arg1, GLdouble arg2, GLdouble arg3) {    
    _pre_call_callback("glRotated", (void*)glRotated, 4, arg0, arg1, arg2, arg3);
     glad_glRotated(arg0, arg1, arg2, arg3);
    _post_call_callback("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("glRotatef", (void*)glRotatef, 4, arg0, arg1, arg2, arg3);
     glad_glRotatef(arg0, arg1, arg2, arg3);
    _post_call_callback("glRotatef", (void*)glRotatef, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLROTATEFPROC glad_debug_glRotatef = glad_debug_impl_glRotatef;
PFNGLVERTEX4IPROC glad_glVertex4i;
void APIENTRY glad_debug_impl_glVertex4i(GLint arg0, GLint arg1, GLint arg2, GLint arg3) {    
    _pre_call_callback("glVertex4i", (void*)glVertex4i, 4, arg0, arg1, arg2, arg3);
     glad_glVertex4i(arg0, arg1, arg2, arg3);
    _post_call_callback("glVertex4i", (void*)glVertex4i, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLVERTEX4IPROC glad_debug_glVertex4i = glad_debug_impl_glVertex4i;
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("glReadPixels", (void*)glReadPixels, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
     glad_glReadPixels(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
    _post_call_callback("glReadPixels", (void*)glReadPixels, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
    
}
PFNGLREADPIXELSPROC glad_debug_glReadPixels = glad_debug_impl_glReadPixels;
PFNGLLOADNAMEPROC glad_glLoadName;
void APIENTRY glad_debug_impl_glLoadName(GLuint arg0) {    
    _pre_call_callback("glLoadName", (void*)glLoadName, 1, arg0);
     glad_glLoadName(arg0);
    _post_call_callback("glLoadName", (void*)glLoadName, 1, arg0);
    
}
PFNGLLOADNAMEPROC glad_debug_glLoadName = glad_debug_impl_glLoadName;
PFNGLUNIFORM4FPROC glad_glUniform4f;
void APIENTRY glad_debug_impl_glUniform4f(GLint arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3, GLfloat arg4) {    
    _pre_call_callback("glUniform4f", (void*)glUniform4f, 5, arg0, arg1, arg2, arg3, arg4);
     glad_glUniform4f(arg0, arg1, arg2, arg3, arg4);
    _post_call_callback("glUniform4f", (void*)glUniform4f, 5, arg0, arg1, arg2, arg3, arg4);
    
}
PFNGLUNIFORM4FPROC glad_debug_glUniform4f = glad_debug_impl_glUniform4f;
PFNGLSHADEMODELPROC glad_glShadeModel;
void APIENTRY glad_debug_impl_glShadeModel(GLenum arg0) {    
    _pre_call_callback("glShadeModel", (void*)glShadeModel, 1, arg0);
     glad_glShadeModel(arg0);
    _post_call_callback("glShadeModel", (void*)glShadeModel, 1, arg0);
    
}
PFNGLSHADEMODELPROC glad_debug_glShadeModel = glad_debug_impl_glShadeModel;
PFNGLMAPGRID1DPROC glad_glMapGrid1d;
void APIENTRY glad_debug_impl_glMapGrid1d(GLint arg0, GLdouble arg1, GLdouble arg2) {    
    _pre_call_callback("glMapGrid1d", (void*)glMapGrid1d, 3, arg0, arg1, arg2);
     glad_glMapGrid1d(arg0, arg1, arg2);
    _post_call_callback("glMapGrid1d", (void*)glMapGrid1d, 3, arg0, arg1, arg2);
    
}
PFNGLMAPGRID1DPROC glad_debug_glMapGrid1d = glad_debug_impl_glMapGrid1d;
PFNGLGETUNIFORMFVPROC glad_glGetUniformfv;
void APIENTRY glad_debug_impl_glGetUniformfv(GLuint arg0, GLint arg1, GLfloat * arg2) {    
    _pre_call_callback("glGetUniformfv", (void*)glGetUniformfv, 3, arg0, arg1, arg2);
     glad_glGetUniformfv(arg0, arg1, arg2);
    _post_call_callback("glGetUniformfv", (void*)glGetUniformfv, 3, arg0, arg1, arg2);
    
}
PFNGLGETUNIFORMFVPROC glad_debug_glGetUniformfv = glad_debug_impl_glGetUniformfv;
PFNGLMAPGRID1FPROC glad_glMapGrid1f;
void APIENTRY glad_debug_impl_glMapGrid1f(GLint arg0, GLfloat arg1, GLfloat arg2) {    
    _pre_call_callback("glMapGrid1f", (void*)glMapGrid1f, 3, arg0, arg1, arg2);
     glad_glMapGrid1f(arg0, arg1, arg2);
    _post_call_callback("glMapGrid1f", (void*)glMapGrid1f, 3, arg0, arg1, arg2);
    
}
PFNGLMAPGRID1FPROC glad_debug_glMapGrid1f = glad_debug_impl_glMapGrid1f;
PFNGLDISABLECLIENTSTATEPROC glad_glDisableClientState;
void APIENTRY glad_debug_impl_glDisableClientState(GLenum arg0) {    
    _pre_call_callback("glDisableClientState", (void*)glDisableClientState, 1, arg0);
     glad_glDisableClientState(arg0);
    _post_call_callback("glDisableClientState", (void*)glDisableClientState, 1, arg0);
    
}
PFNGLDISABLECLIENTSTATEPROC glad_debug_glDisableClientState = glad_debug_impl_glDisableClientState;
PFNGLMULTITEXCOORD3SVPROC glad_glMultiTexCoord3sv;
void APIENTRY glad_debug_impl_glMultiTexCoord3sv(GLenum arg0, const GLshort * arg1) {    
    _pre_call_callback("glMultiTexCoord3sv", (void*)glMultiTexCoord3sv, 2, arg0, arg1);
     glad_glMultiTexCoord3sv(arg0, arg1);
    _post_call_callback("glMultiTexCoord3sv", (void*)glMultiTexCoord3sv, 2, arg0, arg1);
    
}
PFNGLMULTITEXCOORD3SVPROC glad_debug_glMultiTexCoord3sv = glad_debug_impl_glMultiTexCoord3sv;
PFNGLSECONDARYCOLORPOINTERPROC glad_glSecondaryColorPointer;
void APIENTRY glad_debug_impl_glSecondaryColorPointer(GLint arg0, GLenum arg1, GLsizei arg2, const void * arg3) {    
    _pre_call_callback("glSecondaryColorPointer", (void*)glSecondaryColorPointer, 4, arg0, arg1, arg2, arg3);
     glad_glSecondaryColorPointer(arg0, arg1, arg2, arg3);
    _post_call_callback("glSecondaryColorPointer", (void*)glSecondaryColorPointer, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLSECONDARYCOLORPOINTERPROC glad_debug_glSecondaryColorPointer = glad_debug_impl_glSecondaryColorPointer;
PFNGLALPHAFUNCPROC glad_glAlphaFunc;
void APIENTRY glad_debug_impl_glAlphaFunc(GLenum arg0, GLfloat arg1) {    
    _pre_call_callback("glAlphaFunc", (void*)glAlphaFunc, 2, arg0, arg1);
     glad_glAlphaFunc(arg0, arg1);
    _post_call_callback("glAlphaFunc", (void*)glAlphaFunc, 2, arg0, arg1);
    
}
PFNGLALPHAFUNCPROC glad_debug_glAlphaFunc = glad_debug_impl_glAlphaFunc;
PFNGLUNIFORM1IVPROC glad_glUniform1iv;
void APIENTRY glad_debug_impl_glUniform1iv(GLint arg0, GLsizei arg1, const GLint * arg2) {    
    _pre_call_callback("glUniform1iv", (void*)glUniform1iv, 3, arg0, arg1, arg2);
     glad_glUniform1iv(arg0, arg1, arg2);
    _post_call_callback("glUniform1iv", (void*)glUniform1iv, 3, arg0, arg1, arg2);
    
}
PFNGLUNIFORM1IVPROC glad_debug_glUniform1iv = glad_debug_impl_glUniform1iv;
PFNGLMULTITEXCOORD4IVPROC glad_glMultiTexCoord4iv;
void APIENTRY glad_debug_impl_glMultiTexCoord4iv(GLenum arg0, const GLint * arg1) {    
    _pre_call_callback("glMultiTexCoord4iv", (void*)glMultiTexCoord4iv, 2, arg0, arg1);
     glad_glMultiTexCoord4iv(arg0, arg1);
    _post_call_callback("glMultiTexCoord4iv", (void*)glMultiTexCoord4iv, 2, arg0, arg1);
    
}
PFNGLMULTITEXCOORD4IVPROC glad_debug_glMultiTexCoord4iv = glad_debug_impl_glMultiTexCoord4iv;
PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv;
void APIENTRY glad_debug_impl_glGetQueryObjectiv(GLuint arg0, GLenum arg1, GLint * arg2) {    
    _pre_call_callback("glGetQueryObjectiv", (void*)glGetQueryObjectiv, 3, arg0, arg1, arg2);
     glad_glGetQueryObjectiv(arg0, arg1, arg2);
    _post_call_callback("glGetQueryObjectiv", (void*)glGetQueryObjectiv, 3, arg0, arg1, arg2);
    
}
PFNGLGETQUERYOBJECTIVPROC glad_debug_glGetQueryObjectiv = glad_debug_impl_glGetQueryObjectiv;
PFNGLSTENCILFUNCPROC glad_glStencilFunc;
void APIENTRY glad_debug_impl_glStencilFunc(GLenum arg0, GLint arg1, GLuint arg2) {    
    _pre_call_callback("glStencilFunc", (void*)glStencilFunc, 3, arg0, arg1, arg2);
     glad_glStencilFunc(arg0, arg1, arg2);
    _post_call_callback("glStencilFunc", (void*)glStencilFunc, 3, arg0, arg1, arg2);
    
}
PFNGLSTENCILFUNCPROC glad_debug_glStencilFunc = glad_debug_impl_glStencilFunc;
PFNGLMULTITEXCOORD1FVPROC glad_glMultiTexCoord1fv;
void APIENTRY glad_debug_impl_glMultiTexCoord1fv(GLenum arg0, const GLfloat * arg1) {    
    _pre_call_callback("glMultiTexCoord1fv", (void*)glMultiTexCoord1fv, 2, arg0, arg1);
     glad_glMultiTexCoord1fv(arg0, arg1);
    _post_call_callback("glMultiTexCoord1fv", (void*)glMultiTexCoord1fv, 2, arg0, arg1);
    
}
PFNGLMULTITEXCOORD1FVPROC glad_debug_glMultiTexCoord1fv = glad_debug_impl_glMultiTexCoord1fv;
PFNGLCOLOR4UIVPROC glad_glColor4uiv;
void APIENTRY glad_debug_impl_glColor4uiv(const GLuint * arg0) {    
    _pre_call_callback("glColor4uiv", (void*)glColor4uiv, 1, arg0);
     glad_glColor4uiv(arg0);
    _post_call_callback("glColor4uiv", (void*)glColor4uiv, 1, arg0);
    
}
PFNGLCOLOR4UIVPROC glad_debug_glColor4uiv = glad_debug_impl_glColor4uiv;
PFNGLRECTIVPROC glad_glRectiv;
void APIENTRY glad_debug_impl_glRectiv(const GLint * arg0, const GLint * arg1) {    
    _pre_call_callback("glRectiv", (void*)glRectiv, 2, arg0, arg1);
     glad_glRectiv(arg0, arg1);
    _post_call_callback("glRectiv", (void*)glRectiv, 2, arg0, arg1);
    
}
PFNGLRECTIVPROC glad_debug_glRectiv = glad_debug_impl_glRectiv;
PFNGLRASTERPOS3DVPROC glad_glRasterPos3dv;
void APIENTRY glad_debug_impl_glRasterPos3dv(const GLdouble * arg0) {    
    _pre_call_callback("glRasterPos3dv", (void*)glRasterPos3dv, 1, arg0);
     glad_glRasterPos3dv(arg0);
    _post_call_callback("glRasterPos3dv", (void*)glRasterPos3dv, 1, arg0);
    
}
PFNGLRASTERPOS3DVPROC glad_debug_glRasterPos3dv = glad_debug_impl_glRasterPos3dv;
PFNGLEVALMESH2PROC glad_glEvalMesh2;
void APIENTRY glad_debug_impl_glEvalMesh2(GLenum arg0, GLint arg1, GLint arg2, GLint arg3, GLint arg4) {    
    _pre_call_callback("glEvalMesh2", (void*)glEvalMesh2, 5, arg0, arg1, arg2, arg3, arg4);
     glad_glEvalMesh2(arg0, arg1, arg2, arg3, arg4);
    _post_call_callback("glEvalMesh2", (void*)glEvalMesh2, 5, arg0, arg1, arg2, arg3, arg4);
    
}
PFNGLEVALMESH2PROC glad_debug_glEvalMesh2 = glad_debug_impl_glEvalMesh2;
PFNGLEVALMESH1PROC glad_glEvalMesh1;
void APIENTRY glad_debug_impl_glEvalMesh1(GLenum arg0, GLint arg1, GLint arg2) {    
    _pre_call_callback("glEvalMesh1", (void*)glEvalMesh1, 3, arg0, arg1, arg2);
     glad_glEvalMesh1(arg0, arg1, arg2);
    _post_call_callback("glEvalMesh1", (void*)glEvalMesh1, 3, arg0, arg1, arg2);
    
}
PFNGLEVALMESH1PROC glad_debug_glEvalMesh1 = glad_debug_impl_glEvalMesh1;
PFNGLTEXCOORDPOINTERPROC glad_glTexCoordPointer;
void APIENTRY glad_debug_impl_glTexCoordPointer(GLint arg0, GLenum arg1, GLsizei arg2, const void * arg3) {    
    _pre_call_callback("glTexCoordPointer", (void*)glTexCoordPointer, 4, arg0, arg1, arg2, arg3);
     glad_glTexCoordPointer(arg0, arg1, arg2, arg3);
    _post_call_callback("glTexCoordPointer", (void*)glTexCoordPointer, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLTEXCOORDPOINTERPROC glad_debug_glTexCoordPointer = glad_debug_impl_glTexCoordPointer;
PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv;
void APIENTRY glad_debug_impl_glVertexAttrib4Nubv(GLuint arg0, const GLubyte * arg1) {    
    _pre_call_callback("glVertexAttrib4Nubv", (void*)glVertexAttrib4Nubv, 2, arg0, arg1);
     glad_glVertexAttrib4Nubv(arg0, arg1);
    _post_call_callback("glVertexAttrib4Nubv", (void*)glVertexAttrib4Nubv, 2, arg0, arg1);
    
}
PFNGLVERTEXATTRIB4NUBVPROC glad_debug_glVertexAttrib4Nubv = glad_debug_impl_glVertexAttrib4Nubv;
PFNGLEVALCOORD2FVPROC glad_glEvalCoord2fv;
void APIENTRY glad_debug_impl_glEvalCoord2fv(const GLfloat * arg0) {    
    _pre_call_callback("glEvalCoord2fv", (void*)glEvalCoord2fv, 1, arg0);
     glad_glEvalCoord2fv(arg0);
    _post_call_callback("glEvalCoord2fv", (void*)glEvalCoord2fv, 1, arg0);
    
}
PFNGLEVALCOORD2FVPROC glad_debug_glEvalCoord2fv = glad_debug_impl_glEvalCoord2fv;
PFNGLCOLOR4UBVPROC glad_glColor4ubv;
void APIENTRY glad_debug_impl_glColor4ubv(const GLubyte * arg0) {    
    _pre_call_callback("glColor4ubv", (void*)glColor4ubv, 1, arg0);
     glad_glColor4ubv(arg0);
    _post_call_callback("glColor4ubv", (void*)glColor4ubv, 1, arg0);
    
}
PFNGLCOLOR4UBVPROC glad_debug_glColor4ubv = glad_debug_impl_glColor4ubv;
PFNGLLOADTRANSPOSEMATRIXDPROC glad_glLoadTransposeMatrixd;
void APIENTRY glad_debug_impl_glLoadTransposeMatrixd(const GLdouble * arg0) {    
    _pre_call_callback("glLoadTransposeMatrixd", (void*)glLoadTransposeMatrixd, 1, arg0);
     glad_glLoadTransposeMatrixd(arg0);
    _post_call_callback("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("glLoadTransposeMatrixf", (void*)glLoadTransposeMatrixf, 1, arg0);
     glad_glLoadTransposeMatrixf(arg0);
    _post_call_callback("glLoadTransposeMatrixf", (void*)glLoadTransposeMatrixf, 1, arg0);
    
}
PFNGLLOADTRANSPOSEMATRIXFPROC glad_debug_glLoadTransposeMatrixf = glad_debug_impl_glLoadTransposeMatrixf;
PFNGLRASTERPOS2IVPROC glad_glRasterPos2iv;
void APIENTRY glad_debug_impl_glRasterPos2iv(const GLint * arg0) {    
    _pre_call_callback("glRasterPos2iv", (void*)glRasterPos2iv, 1, arg0);
     glad_glRasterPos2iv(arg0);
    _post_call_callback("glRasterPos2iv", (void*)glRasterPos2iv, 1, arg0);
    
}
PFNGLRASTERPOS2IVPROC glad_debug_glRasterPos2iv = glad_debug_impl_glRasterPos2iv;
PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData;
void APIENTRY glad_debug_impl_glGetBufferSubData(GLenum arg0, GLintptr arg1, GLsizeiptr arg2, void * arg3) {    
    _pre_call_callback("glGetBufferSubData", (void*)glGetBufferSubData, 4, arg0, arg1, arg2, arg3);
     glad_glGetBufferSubData(arg0, arg1, arg2, arg3);
    _post_call_callback("glGetBufferSubData", (void*)glGetBufferSubData, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLGETBUFFERSUBDATAPROC glad_debug_glGetBufferSubData = glad_debug_impl_glGetBufferSubData;
PFNGLTEXENVIVPROC glad_glTexEnviv;
void APIENTRY glad_debug_impl_glTexEnviv(GLenum arg0, GLenum arg1, const GLint * arg2) {    
    _pre_call_callback("glTexEnviv", (void*)glTexEnviv, 3, arg0, arg1, arg2);
     glad_glTexEnviv(arg0, arg1, arg2);
    _post_call_callback("glTexEnviv", (void*)glTexEnviv, 3, arg0, arg1, arg2);
    
}
PFNGLTEXENVIVPROC glad_debug_glTexEnviv = glad_debug_impl_glTexEnviv;
PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate;
void APIENTRY glad_debug_impl_glBlendEquationSeparate(GLenum arg0, GLenum arg1) {    
    _pre_call_callback("glBlendEquationSeparate", (void*)glBlendEquationSeparate, 2, arg0, arg1);
     glad_glBlendEquationSeparate(arg0, arg1);
    _post_call_callback("glBlendEquationSeparate", (void*)glBlendEquationSeparate, 2, arg0, arg1);
    
}
PFNGLBLENDEQUATIONSEPARATEPROC glad_debug_glBlendEquationSeparate = glad_debug_impl_glBlendEquationSeparate;
PFNGLGENBUFFERSPROC glad_glGenBuffers;
void APIENTRY glad_debug_impl_glGenBuffers(GLsizei arg0, GLuint * arg1) {    
    _pre_call_callback("glGenBuffers", (void*)glGenBuffers, 2, arg0, arg1);
     glad_glGenBuffers(arg0, arg1);
    _post_call_callback("glGenBuffers", (void*)glGenBuffers, 2, arg0, arg1);
    
}
PFNGLGENBUFFERSPROC glad_debug_glGenBuffers = glad_debug_impl_glGenBuffers;
PFNGLSELECTBUFFERPROC glad_glSelectBuffer;
void APIENTRY glad_debug_impl_glSelectBuffer(GLsizei arg0, GLuint * arg1) {    
    _pre_call_callback("glSelectBuffer", (void*)glSelectBuffer, 2, arg0, arg1);
     glad_glSelectBuffer(arg0, arg1);
    _post_call_callback("glSelectBuffer", (void*)glSelectBuffer, 2, arg0, arg1);
    
}
PFNGLSELECTBUFFERPROC glad_debug_glSelectBuffer = glad_debug_impl_glSelectBuffer;
PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv;
void APIENTRY glad_debug_impl_glVertexAttrib2sv(GLuint arg0, const GLshort * arg1) {    
    _pre_call_callback("glVertexAttrib2sv", (void*)glVertexAttrib2sv, 2, arg0, arg1);
     glad_glVertexAttrib2sv(arg0, arg1);
    _post_call_callback("glVertexAttrib2sv", (void*)glVertexAttrib2sv, 2, arg0, arg1);
    
}
PFNGLVERTEXATTRIB2SVPROC glad_debug_glVertexAttrib2sv = glad_debug_impl_glVertexAttrib2sv;
PFNGLPUSHATTRIBPROC glad_glPushAttrib;
void APIENTRY glad_debug_impl_glPushAttrib(GLbitfield arg0) {    
    _pre_call_callback("glPushAttrib", (void*)glPushAttrib, 1, arg0);
     glad_glPushAttrib(arg0);
    _post_call_callback("glPushAttrib", (void*)glPushAttrib, 1, arg0);
    
}
PFNGLPUSHATTRIBPROC glad_debug_glPushAttrib = glad_debug_impl_glPushAttrib;
PFNGLBLENDFUNCPROC glad_glBlendFunc;
void APIENTRY glad_debug_impl_glBlendFunc(GLenum arg0, GLenum arg1) {    
    _pre_call_callback("glBlendFunc", (void*)glBlendFunc, 2, arg0, arg1);
     glad_glBlendFunc(arg0, arg1);
    _post_call_callback("glBlendFunc", (void*)glBlendFunc, 2, arg0, arg1);
    
}
PFNGLBLENDFUNCPROC glad_debug_glBlendFunc = glad_debug_impl_glBlendFunc;
PFNGLCREATEPROGRAMPROC glad_glCreateProgram;
GLuint APIENTRY glad_debug_impl_glCreateProgram(void) {    
    GLuint ret;
    _pre_call_callback("glCreateProgram", (void*)glCreateProgram, 0);
    ret =  glad_glCreateProgram();
    _post_call_callback("glCreateProgram", (void*)glCreateProgram, 0);
    return ret;
}
PFNGLCREATEPROGRAMPROC glad_debug_glCreateProgram = glad_debug_impl_glCreateProgram;
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("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("glTexImage3D", (void*)glTexImage3D, 10, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
    
}
PFNGLTEXIMAGE3DPROC glad_debug_glTexImage3D = glad_debug_impl_glTexImage3D;
PFNGLLIGHTIVPROC glad_glLightiv;
void APIENTRY glad_debug_impl_glLightiv(GLenum arg0, GLenum arg1, const GLint * arg2) {    
    _pre_call_callback("glLightiv", (void*)glLightiv, 3, arg0, arg1, arg2);
     glad_glLightiv(arg0, arg1, arg2);
    _post_call_callback("glLightiv", (void*)glLightiv, 3, arg0, arg1, arg2);
    
}
PFNGLLIGHTIVPROC glad_debug_glLightiv = glad_debug_impl_glLightiv;
PFNGLTEXGENFVPROC glad_glTexGenfv;
void APIENTRY glad_debug_impl_glTexGenfv(GLenum arg0, GLenum arg1, const GLfloat * arg2) {    
    _pre_call_callback("glTexGenfv", (void*)glTexGenfv, 3, arg0, arg1, arg2);
     glad_glTexGenfv(arg0, arg1, arg2);
    _post_call_callback("glTexGenfv", (void*)glTexGenfv, 3, arg0, arg1, arg2);
    
}
PFNGLTEXGENFVPROC glad_debug_glTexGenfv = glad_debug_impl_glTexGenfv;
PFNGLENDPROC glad_glEnd;
void APIENTRY glad_debug_impl_glEnd(void) {    
    _pre_call_callback("glEnd", (void*)glEnd, 0);
     glad_glEnd();
    _post_call_callback("glEnd", (void*)glEnd, 0);
    
}
PFNGLENDPROC glad_debug_glEnd = glad_debug_impl_glEnd;
PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers;
void APIENTRY glad_debug_impl_glDeleteBuffers(GLsizei arg0, const GLuint * arg1) {    
    _pre_call_callback("glDeleteBuffers", (void*)glDeleteBuffers, 2, arg0, arg1);
     glad_glDeleteBuffers(arg0, arg1);
    _post_call_callback("glDeleteBuffers", (void*)glDeleteBuffers, 2, arg0, arg1);
    
}
PFNGLDELETEBUFFERSPROC glad_debug_glDeleteBuffers = glad_debug_impl_glDeleteBuffers;
PFNGLSCISSORPROC glad_glScissor;
void APIENTRY glad_debug_impl_glScissor(GLint arg0, GLint arg1, GLsizei arg2, GLsizei arg3) {    
    _pre_call_callback("glScissor", (void*)glScissor, 4, arg0, arg1, arg2, arg3);
     glad_glScissor(arg0, arg1, arg2, arg3);
    _post_call_callback("glScissor", (void*)glScissor, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLSCISSORPROC glad_debug_glScissor = glad_debug_impl_glScissor;
PFNGLCLIPPLANEPROC glad_glClipPlane;
void APIENTRY glad_debug_impl_glClipPlane(GLenum arg0, const GLdouble * arg1) {    
    _pre_call_callback("glClipPlane", (void*)glClipPlane, 2, arg0, arg1);
     glad_glClipPlane(arg0, arg1);
    _post_call_callback("glClipPlane", (void*)glClipPlane, 2, arg0, arg1);
    
}
PFNGLCLIPPLANEPROC glad_debug_glClipPlane = glad_debug_impl_glClipPlane;
PFNGLPUSHNAMEPROC glad_glPushName;
void APIENTRY glad_debug_impl_glPushName(GLuint arg0) {    
    _pre_call_callback("glPushName", (void*)glPushName, 1, arg0);
     glad_glPushName(arg0);
    _post_call_callback("glPushName", (void*)glPushName, 1, arg0);
    
}
PFNGLPUSHNAMEPROC glad_debug_glPushName = glad_debug_impl_glPushName;
PFNGLTEXGENDVPROC glad_glTexGendv;
void APIENTRY glad_debug_impl_glTexGendv(GLenum arg0, GLenum arg1, const GLdouble * arg2) {    
    _pre_call_callback("glTexGendv", (void*)glTexGendv, 3, arg0, arg1, arg2);
     glad_glTexGendv(arg0, arg1, arg2);
    _post_call_callback("glTexGendv", (void*)glTexGendv, 3, arg0, arg1, arg2);
    
}
PFNGLTEXGENDVPROC glad_debug_glTexGendv = glad_debug_impl_glTexGendv;
PFNGLINDEXUBPROC glad_glIndexub;
void APIENTRY glad_debug_impl_glIndexub(GLubyte arg0) {    
    _pre_call_callback("glIndexub", (void*)glIndexub, 1, arg0);
     glad_glIndexub(arg0);
    _post_call_callback("glIndexub", (void*)glIndexub, 1, arg0);
    
}
PFNGLINDEXUBPROC glad_debug_glIndexub = glad_debug_impl_glIndexub;
PFNGLSECONDARYCOLOR3IVPROC glad_glSecondaryColor3iv;
void APIENTRY glad_debug_impl_glSecondaryColor3iv(const GLint * arg0) {    
    _pre_call_callback("glSecondaryColor3iv", (void*)glSecondaryColor3iv, 1, arg0);
     glad_glSecondaryColor3iv(arg0);
    _post_call_callback("glSecondaryColor3iv", (void*)glSecondaryColor3iv, 1, arg0);
    
}
PFNGLSECONDARYCOLOR3IVPROC glad_debug_glSecondaryColor3iv = glad_debug_impl_glSecondaryColor3iv;
PFNGLRASTERPOS4IPROC glad_glRasterPos4i;
void APIENTRY glad_debug_impl_glRasterPos4i(GLint arg0, GLint arg1, GLint arg2, GLint arg3) {    
    _pre_call_callback("glRasterPos4i", (void*)glRasterPos4i, 4, arg0, arg1, arg2, arg3);
     glad_glRasterPos4i(arg0, arg1, arg2, arg3);
    _post_call_callback("glRasterPos4i", (void*)glRasterPos4i, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLRASTERPOS4IPROC glad_debug_glRasterPos4i = glad_debug_impl_glRasterPos4i;
PFNGLMULTTRANSPOSEMATRIXDPROC glad_glMultTransposeMatrixd;
void APIENTRY glad_debug_impl_glMultTransposeMatrixd(const GLdouble * arg0) {    
    _pre_call_callback("glMultTransposeMatrixd", (void*)glMultTransposeMatrixd, 1, arg0);
     glad_glMultTransposeMatrixd(arg0);
    _post_call_callback("glMultTransposeMatrixd", (void*)glMultTransposeMatrixd, 1, arg0);
    
}
PFNGLMULTTRANSPOSEMATRIXDPROC glad_debug_glMultTransposeMatrixd = glad_debug_impl_glMultTransposeMatrixd;
PFNGLCLEARCOLORPROC glad_glClearColor;
void APIENTRY glad_debug_impl_glClearColor(GLfloat arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3) {    
    _pre_call_callback("glClearColor", (void*)glClearColor, 4, arg0, arg1, arg2, arg3);
     glad_glClearColor(arg0, arg1, arg2, arg3);
    _post_call_callback("glClearColor", (void*)glClearColor, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLCLEARCOLORPROC glad_debug_glClearColor = glad_debug_impl_glClearColor;
PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv;
void APIENTRY glad_debug_impl_glVertexAttrib4uiv(GLuint arg0, const GLuint * arg1) {    
    _pre_call_callback("glVertexAttrib4uiv", (void*)glVertexAttrib4uiv, 2, arg0, arg1);
     glad_glVertexAttrib4uiv(arg0, arg1);
    _post_call_callback("glVertexAttrib4uiv", (void*)glVertexAttrib4uiv, 2, arg0, arg1);
    
}
PFNGLVERTEXATTRIB4UIVPROC glad_debug_glVertexAttrib4uiv = glad_debug_impl_glVertexAttrib4uiv;
PFNGLNORMAL3SPROC glad_glNormal3s;
void APIENTRY glad_debug_impl_glNormal3s(GLshort arg0, GLshort arg1, GLshort arg2) {    
    _pre_call_callback("glNormal3s", (void*)glNormal3s, 3, arg0, arg1, arg2);
     glad_glNormal3s(arg0, arg1, arg2);
    _post_call_callback("glNormal3s", (void*)glNormal3s, 3, arg0, arg1, arg2);
    
}
PFNGLNORMAL3SPROC glad_debug_glNormal3s = glad_debug_impl_glNormal3s;
PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv;
void APIENTRY glad_debug_impl_glVertexAttrib4Niv(GLuint arg0, const GLint * arg1) {    
    _pre_call_callback("glVertexAttrib4Niv", (void*)glVertexAttrib4Niv, 2, arg0, arg1);
     glad_glVertexAttrib4Niv(arg0, arg1);
    _post_call_callback("glVertexAttrib4Niv", (void*)glVertexAttrib4Niv, 2, arg0, arg1);
    
}
PFNGLVERTEXATTRIB4NIVPROC glad_debug_glVertexAttrib4Niv = glad_debug_impl_glVertexAttrib4Niv;
PFNGLPOINTPARAMETERIPROC glad_glPointParameteri;
void APIENTRY glad_debug_impl_glPointParameteri(GLenum arg0, GLint arg1) {    
    _pre_call_callback("glPointParameteri", (void*)glPointParameteri, 2, arg0, arg1);
     glad_glPointParameteri(arg0, arg1);
    _post_call_callback("glPointParameteri", (void*)glPointParameteri, 2, arg0, arg1);
    
}
PFNGLPOINTPARAMETERIPROC glad_debug_glPointParameteri = glad_debug_impl_glPointParameteri;
PFNGLBLENDCOLORPROC glad_glBlendColor;
void APIENTRY glad_debug_impl_glBlendColor(GLfloat arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3) {    
    _pre_call_callback("glBlendColor", (void*)glBlendColor, 4, arg0, arg1, arg2, arg3);
     glad_glBlendColor(arg0, arg1, arg2, arg3);
    _post_call_callback("glBlendColor", (void*)glBlendColor, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLBLENDCOLORPROC glad_debug_glBlendColor = glad_debug_impl_glBlendColor;
PFNGLWINDOWPOS3DPROC glad_glWindowPos3d;
void APIENTRY glad_debug_impl_glWindowPos3d(GLdouble arg0, GLdouble arg1, GLdouble arg2) {    
    _pre_call_callback("glWindowPos3d", (void*)glWindowPos3d, 3, arg0, arg1, arg2);
     glad_glWindowPos3d(arg0, arg1, arg2);
    _post_call_callback("glWindowPos3d", (void*)glWindowPos3d, 3, arg0, arg1, arg2);
    
}
PFNGLWINDOWPOS3DPROC glad_debug_glWindowPos3d = glad_debug_impl_glWindowPos3d;
PFNGLCOLOR4DVPROC glad_glColor4dv;
void APIENTRY glad_debug_impl_glColor4dv(const GLdouble * arg0) {    
    _pre_call_callback("glColor4dv", (void*)glColor4dv, 1, arg0);
     glad_glColor4dv(arg0);
    _post_call_callback("glColor4dv", (void*)glColor4dv, 1, arg0);
    
}
PFNGLCOLOR4DVPROC glad_debug_glColor4dv = glad_debug_impl_glColor4dv;
PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv;
void APIENTRY glad_debug_impl_glPointParameterfv(GLenum arg0, const GLfloat * arg1) {    
    _pre_call_callback("glPointParameterfv", (void*)glPointParameterfv, 2, arg0, arg1);
     glad_glPointParameterfv(arg0, arg1);
    _post_call_callback("glPointParameterfv", (void*)glPointParameterfv, 2, arg0, arg1);
    
}
PFNGLPOINTPARAMETERFVPROC glad_debug_glPointParameterfv = glad_debug_impl_glPointParameterfv;
PFNGLUNIFORM2FVPROC glad_glUniform2fv;
void APIENTRY glad_debug_impl_glUniform2fv(GLint arg0, GLsizei arg1, const GLfloat * arg2) {    
    _pre_call_callback("glUniform2fv", (void*)glUniform2fv, 3, arg0, arg1, arg2);
     glad_glUniform2fv(arg0, arg1, arg2);
    _post_call_callback("glUniform2fv", (void*)glUniform2fv, 3, arg0, arg1, arg2);
    
}
PFNGLUNIFORM2FVPROC glad_debug_glUniform2fv = glad_debug_impl_glUniform2fv;
PFNGLSECONDARYCOLOR3UBPROC glad_glSecondaryColor3ub;
void APIENTRY glad_debug_impl_glSecondaryColor3ub(GLubyte arg0, GLubyte arg1, GLubyte arg2) {    
    _pre_call_callback("glSecondaryColor3ub", (void*)glSecondaryColor3ub, 3, arg0, arg1, arg2);
     glad_glSecondaryColor3ub(arg0, arg1, arg2);
    _post_call_callback("glSecondaryColor3ub", (void*)glSecondaryColor3ub, 3, arg0, arg1, arg2);
    
}
PFNGLSECONDARYCOLOR3UBPROC glad_debug_glSecondaryColor3ub = glad_debug_impl_glSecondaryColor3ub;
PFNGLSECONDARYCOLOR3UIPROC glad_glSecondaryColor3ui;
void APIENTRY glad_debug_impl_glSecondaryColor3ui(GLuint arg0, GLuint arg1, GLuint arg2) {    
    _pre_call_callback("glSecondaryColor3ui", (void*)glSecondaryColor3ui, 3, arg0, arg1, arg2);
     glad_glSecondaryColor3ui(arg0, arg1, arg2);
    _post_call_callback("glSecondaryColor3ui", (void*)glSecondaryColor3ui, 3, arg0, arg1, arg2);
    
}
PFNGLSECONDARYCOLOR3UIPROC glad_debug_glSecondaryColor3ui = glad_debug_impl_glSecondaryColor3ui;
PFNGLTEXCOORD3DVPROC glad_glTexCoord3dv;
void APIENTRY glad_debug_impl_glTexCoord3dv(const GLdouble * arg0) {    
    _pre_call_callback("glTexCoord3dv", (void*)glTexCoord3dv, 1, arg0);
     glad_glTexCoord3dv(arg0);
    _post_call_callback("glTexCoord3dv", (void*)glTexCoord3dv, 1, arg0);
    
}
PFNGLTEXCOORD3DVPROC glad_debug_glTexCoord3dv = glad_debug_impl_glTexCoord3dv;
PFNGLNORMAL3IVPROC glad_glNormal3iv;
void APIENTRY glad_debug_impl_glNormal3iv(const GLint * arg0) {    
    _pre_call_callback("glNormal3iv", (void*)glNormal3iv, 1, arg0);
     glad_glNormal3iv(arg0);
    _post_call_callback("glNormal3iv", (void*)glNormal3iv, 1, arg0);
    
}
PFNGLNORMAL3IVPROC glad_debug_glNormal3iv = glad_debug_impl_glNormal3iv;
PFNGLWINDOWPOS3SPROC glad_glWindowPos3s;
void APIENTRY glad_debug_impl_glWindowPos3s(GLshort arg0, GLshort arg1, GLshort arg2) {    
    _pre_call_callback("glWindowPos3s", (void*)glWindowPos3s, 3, arg0, arg1, arg2);
     glad_glWindowPos3s(arg0, arg1, arg2);
    _post_call_callback("glWindowPos3s", (void*)glWindowPos3s, 3, arg0, arg1, arg2);
    
}
PFNGLWINDOWPOS3SPROC glad_debug_glWindowPos3s = glad_debug_impl_glWindowPos3s;
PFNGLPOINTPARAMETERFPROC glad_glPointParameterf;
void APIENTRY glad_debug_impl_glPointParameterf(GLenum arg0, GLfloat arg1) {    
    _pre_call_callback("glPointParameterf", (void*)glPointParameterf, 2, arg0, arg1);
     glad_glPointParameterf(arg0, arg1);
    _post_call_callback("glPointParameterf", (void*)glPointParameterf, 2, arg0, arg1);
    
}
PFNGLPOINTPARAMETERFPROC glad_debug_glPointParameterf = glad_debug_impl_glPointParameterf;
PFNGLWINDOWPOS3IPROC glad_glWindowPos3i;
void APIENTRY glad_debug_impl_glWindowPos3i(GLint arg0, GLint arg1, GLint arg2) {    
    _pre_call_callback("glWindowPos3i", (void*)glWindowPos3i, 3, arg0, arg1, arg2);
     glad_glWindowPos3i(arg0, arg1, arg2);
    _post_call_callback("glWindowPos3i", (void*)glWindowPos3i, 3, arg0, arg1, arg2);
    
}
PFNGLWINDOWPOS3IPROC glad_debug_glWindowPos3i = glad_debug_impl_glWindowPos3i;
PFNGLMULTITEXCOORD4SPROC glad_glMultiTexCoord4s;
void APIENTRY glad_debug_impl_glMultiTexCoord4s(GLenum arg0, GLshort arg1, GLshort arg2, GLshort arg3, GLshort arg4) {    
    _pre_call_callback("glMultiTexCoord4s", (void*)glMultiTexCoord4s, 5, arg0, arg1, arg2, arg3, arg4);
     glad_glMultiTexCoord4s(arg0, arg1, arg2, arg3, arg4);
    _post_call_callback("glMultiTexCoord4s", (void*)glMultiTexCoord4s, 5, arg0, arg1, arg2, arg3, arg4);
    
}
PFNGLMULTITEXCOORD4SPROC glad_debug_glMultiTexCoord4s = glad_debug_impl_glMultiTexCoord4s;
PFNGLWINDOWPOS3FPROC glad_glWindowPos3f;
void APIENTRY glad_debug_impl_glWindowPos3f(GLfloat arg0, GLfloat arg1, GLfloat arg2) {    
    _pre_call_callback("glWindowPos3f", (void*)glWindowPos3f, 3, arg0, arg1, arg2);
     glad_glWindowPos3f(arg0, arg1, arg2);
    _post_call_callback("glWindowPos3f", (void*)glWindowPos3f, 3, arg0, arg1, arg2);
    
}
PFNGLWINDOWPOS3FPROC glad_debug_glWindowPos3f = glad_debug_impl_glWindowPos3f;
PFNGLCOLOR3USPROC glad_glColor3us;
void APIENTRY glad_debug_impl_glColor3us(GLushort arg0, GLushort arg1, GLushort arg2) {    
    _pre_call_callback("glColor3us", (void*)glColor3us, 3, arg0, arg1, arg2);
     glad_glColor3us(arg0, arg1, arg2);
    _post_call_callback("glColor3us", (void*)glColor3us, 3, arg0, arg1, arg2);
    
}
PFNGLCOLOR3USPROC glad_debug_glColor3us = glad_debug_impl_glColor3us;
PFNGLCOLOR3UIVPROC glad_glColor3uiv;
void APIENTRY glad_debug_impl_glColor3uiv(const GLuint * arg0) {    
    _pre_call_callback("glColor3uiv", (void*)glColor3uiv, 1, arg0);
     glad_glColor3uiv(arg0);
    _post_call_callback("glColor3uiv", (void*)glColor3uiv, 1, arg0);
    
}
PFNGLCOLOR3UIVPROC glad_debug_glColor3uiv = glad_debug_impl_glColor3uiv;
PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv;
void APIENTRY glad_debug_impl_glVertexAttrib4Nusv(GLuint arg0, const GLushort * arg1) {    
    _pre_call_callback("glVertexAttrib4Nusv", (void*)glVertexAttrib4Nusv, 2, arg0, arg1);
     glad_glVertexAttrib4Nusv(arg0, arg1);
    _post_call_callback("glVertexAttrib4Nusv", (void*)glVertexAttrib4Nusv, 2, arg0, arg1);
    
}
PFNGLVERTEXATTRIB4NUSVPROC glad_debug_glVertexAttrib4Nusv = glad_debug_impl_glVertexAttrib4Nusv;
PFNGLGETLIGHTIVPROC glad_glGetLightiv;
void APIENTRY glad_debug_impl_glGetLightiv(GLenum arg0, GLenum arg1, GLint * arg2) {    
    _pre_call_callback("glGetLightiv", (void*)glGetLightiv, 3, arg0, arg1, arg2);
     glad_glGetLightiv(arg0, arg1, arg2);
    _post_call_callback("glGetLightiv", (void*)glGetLightiv, 3, arg0, arg1, arg2);
    
}
PFNGLGETLIGHTIVPROC glad_debug_glGetLightiv = glad_debug_impl_glGetLightiv;
PFNGLDEPTHFUNCPROC glad_glDepthFunc;
void APIENTRY glad_debug_impl_glDepthFunc(GLenum arg0) {    
    _pre_call_callback("glDepthFunc", (void*)glDepthFunc, 1, arg0);
     glad_glDepthFunc(arg0);
    _post_call_callback("glDepthFunc", (void*)glDepthFunc, 1, arg0);
    
}
PFNGLDEPTHFUNCPROC glad_debug_glDepthFunc = glad_debug_impl_glDepthFunc;
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("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("glCompressedTexSubImage2D", (void*)glCompressedTexSubImage2D, 9, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
    
}
PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_debug_glCompressedTexSubImage2D = glad_debug_impl_glCompressedTexSubImage2D;
PFNGLLISTBASEPROC glad_glListBase;
void APIENTRY glad_debug_impl_glListBase(GLuint arg0) {    
    _pre_call_callback("glListBase", (void*)glListBase, 1, arg0);
     glad_glListBase(arg0);
    _post_call_callback("glListBase", (void*)glListBase, 1, arg0);
    
}
PFNGLLISTBASEPROC glad_debug_glListBase = glad_debug_impl_glListBase;
PFNGLMULTITEXCOORD4FPROC glad_glMultiTexCoord4f;
void APIENTRY glad_debug_impl_glMultiTexCoord4f(GLenum arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3, GLfloat arg4) {    
    _pre_call_callback("glMultiTexCoord4f", (void*)glMultiTexCoord4f, 5, arg0, arg1, arg2, arg3, arg4);
     glad_glMultiTexCoord4f(arg0, arg1, arg2, arg3, arg4);
    _post_call_callback("glMultiTexCoord4f", (void*)glMultiTexCoord4f, 5, arg0, arg1, arg2, arg3, arg4);
    
}
PFNGLMULTITEXCOORD4FPROC glad_debug_glMultiTexCoord4f = glad_debug_impl_glMultiTexCoord4f;
PFNGLCOLOR3UBPROC glad_glColor3ub;
void APIENTRY glad_debug_impl_glColor3ub(GLubyte arg0, GLubyte arg1, GLubyte arg2) {    
    _pre_call_callback("glColor3ub", (void*)glColor3ub, 3, arg0, arg1, arg2);
     glad_glColor3ub(arg0, arg1, arg2);
    _post_call_callback("glColor3ub", (void*)glColor3ub, 3, arg0, arg1, arg2);
    
}
PFNGLCOLOR3UBPROC glad_debug_glColor3ub = glad_debug_impl_glColor3ub;
PFNGLMULTITEXCOORD4DPROC glad_glMultiTexCoord4d;
void APIENTRY glad_debug_impl_glMultiTexCoord4d(GLenum arg0, GLdouble arg1, GLdouble arg2, GLdouble arg3, GLdouble arg4) {    
    _pre_call_callback("glMultiTexCoord4d", (void*)glMultiTexCoord4d, 5, arg0, arg1, arg2, arg3, arg4);
     glad_glMultiTexCoord4d(arg0, arg1, arg2, arg3, arg4);
    _post_call_callback("glMultiTexCoord4d", (void*)glMultiTexCoord4d, 5, arg0, arg1, arg2, arg3, arg4);
    
}
PFNGLMULTITEXCOORD4DPROC glad_debug_glMultiTexCoord4d = glad_debug_impl_glMultiTexCoord4d;
PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv;
void APIENTRY glad_debug_impl_glGetTexParameterfv(GLenum arg0, GLenum arg1, GLfloat * arg2) {    
    _pre_call_callback("glGetTexParameterfv", (void*)glGetTexParameterfv, 3, arg0, arg1, arg2);
     glad_glGetTexParameterfv(arg0, arg1, arg2);
    _post_call_callback("glGetTexParameterfv", (void*)glGetTexParameterfv, 3, arg0, arg1, arg2);
    
}
PFNGLGETTEXPARAMETERFVPROC glad_debug_glGetTexParameterfv = glad_debug_impl_glGetTexParameterfv;
PFNGLCOLOR3UIPROC glad_glColor3ui;
void APIENTRY glad_debug_impl_glColor3ui(GLuint arg0, GLuint arg1, GLuint arg2) {    
    _pre_call_callback("glColor3ui", (void*)glColor3ui, 3, arg0, arg1, arg2);
     glad_glColor3ui(arg0, arg1, arg2);
    _post_call_callback("glColor3ui", (void*)glColor3ui, 3, arg0, arg1, arg2);
    
}
PFNGLCOLOR3UIPROC glad_debug_glColor3ui = glad_debug_impl_glColor3ui;
PFNGLMULTITEXCOORD4IPROC glad_glMultiTexCoord4i;
void APIENTRY glad_debug_impl_glMultiTexCoord4i(GLenum arg0, GLint arg1, GLint arg2, GLint arg3, GLint arg4) {    
    _pre_call_callback("glMultiTexCoord4i", (void*)glMultiTexCoord4i, 5, arg0, arg1, arg2, arg3, arg4);
     glad_glMultiTexCoord4i(arg0, arg1, arg2, arg3, arg4);
    _post_call_callback("glMultiTexCoord4i", (void*)glMultiTexCoord4i, 5, arg0, arg1, arg2, arg3, arg4);
    
}
PFNGLMULTITEXCOORD4IPROC glad_debug_glMultiTexCoord4i = glad_debug_impl_glMultiTexCoord4i;
PFNGLGETPOLYGONSTIPPLEPROC glad_glGetPolygonStipple;
void APIENTRY glad_debug_impl_glGetPolygonStipple(GLubyte * arg0) {    
    _pre_call_callback("glGetPolygonStipple", (void*)glGetPolygonStipple, 1, arg0);
     glad_glGetPolygonStipple(arg0);
    _post_call_callback("glGetPolygonStipple", (void*)glGetPolygonStipple, 1, arg0);
    
}
PFNGLGETPOLYGONSTIPPLEPROC glad_debug_glGetPolygonStipple = glad_debug_impl_glGetPolygonStipple;
PFNGLMULTITEXCOORD4DVPROC glad_glMultiTexCoord4dv;
void APIENTRY glad_debug_impl_glMultiTexCoord4dv(GLenum arg0, const GLdouble * arg1) {    
    _pre_call_callback("glMultiTexCoord4dv", (void*)glMultiTexCoord4dv, 2, arg0, arg1);
     glad_glMultiTexCoord4dv(arg0, arg1);
    _post_call_callback("glMultiTexCoord4dv", (void*)glMultiTexCoord4dv, 2, arg0, arg1);
    
}
PFNGLMULTITEXCOORD4DVPROC glad_debug_glMultiTexCoord4dv = glad_debug_impl_glMultiTexCoord4dv;
PFNGLCOLORMASKPROC glad_glColorMask;
void APIENTRY glad_debug_impl_glColorMask(GLboolean arg0, GLboolean arg1, GLboolean arg2, GLboolean arg3) {    
    _pre_call_callback("glColorMask", (void*)glColorMask, 4, arg0, arg1, arg2, arg3);
     glad_glColorMask(arg0, arg1, arg2, arg3);
    _post_call_callback("glColorMask", (void*)glColorMask, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLCOLORMASKPROC glad_debug_glColorMask = glad_debug_impl_glColorMask;
PFNGLBLENDEQUATIONPROC glad_glBlendEquation;
void APIENTRY glad_debug_impl_glBlendEquation(GLenum arg0) {    
    _pre_call_callback("glBlendEquation", (void*)glBlendEquation, 1, arg0);
     glad_glBlendEquation(arg0);
    _post_call_callback("glBlendEquation", (void*)glBlendEquation, 1, arg0);
    
}
PFNGLBLENDEQUATIONPROC glad_debug_glBlendEquation = glad_debug_impl_glBlendEquation;
PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation;
GLint APIENTRY glad_debug_impl_glGetUniformLocation(GLuint arg0, const GLchar * arg1) {    
    GLint ret;
    _pre_call_callback("glGetUniformLocation", (void*)glGetUniformLocation, 2, arg0, arg1);
    ret =  glad_glGetUniformLocation(arg0, arg1);
    _post_call_callback("glGetUniformLocation", (void*)glGetUniformLocation, 2, arg0, arg1);
    return ret;
}
PFNGLGETUNIFORMLOCATIONPROC glad_debug_glGetUniformLocation = glad_debug_impl_glGetUniformLocation;
PFNGLRASTERPOS4SPROC glad_glRasterPos4s;
void APIENTRY glad_debug_impl_glRasterPos4s(GLshort arg0, GLshort arg1, GLshort arg2, GLshort arg3) {    
    _pre_call_callback("glRasterPos4s", (void*)glRasterPos4s, 4, arg0, arg1, arg2, arg3);
     glad_glRasterPos4s(arg0, arg1, arg2, arg3);
    _post_call_callback("glRasterPos4s", (void*)glRasterPos4s, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLRASTERPOS4SPROC glad_debug_glRasterPos4s = glad_debug_impl_glRasterPos4s;
PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv;
void APIENTRY glad_debug_impl_glVertexAttrib4usv(GLuint arg0, const GLushort * arg1) {    
    _pre_call_callback("glVertexAttrib4usv", (void*)glVertexAttrib4usv, 2, arg0, arg1);
     glad_glVertexAttrib4usv(arg0, arg1);
    _post_call_callback("glVertexAttrib4usv", (void*)glVertexAttrib4usv, 2, arg0, arg1);
    
}
PFNGLVERTEXATTRIB4USVPROC glad_debug_glVertexAttrib4usv = glad_debug_impl_glVertexAttrib4usv;
PFNGLMULTITEXCOORD3DVPROC glad_glMultiTexCoord3dv;
void APIENTRY glad_debug_impl_glMultiTexCoord3dv(GLenum arg0, const GLdouble * arg1) {    
    _pre_call_callback("glMultiTexCoord3dv", (void*)glMultiTexCoord3dv, 2, arg0, arg1);
     glad_glMultiTexCoord3dv(arg0, arg1);
    _post_call_callback("glMultiTexCoord3dv", (void*)glMultiTexCoord3dv, 2, arg0, arg1);
    
}
PFNGLMULTITEXCOORD3DVPROC glad_debug_glMultiTexCoord3dv = glad_debug_impl_glMultiTexCoord3dv;
PFNGLCOLOR4SVPROC glad_glColor4sv;
void APIENTRY glad_debug_impl_glColor4sv(const GLshort * arg0) {    
    _pre_call_callback("glColor4sv", (void*)glColor4sv, 1, arg0);
     glad_glColor4sv(arg0);
    _post_call_callback("glColor4sv", (void*)glColor4sv, 1, arg0);
    
}
PFNGLCOLOR4SVPROC glad_debug_glColor4sv = glad_debug_impl_glColor4sv;
PFNGLPOPCLIENTATTRIBPROC glad_glPopClientAttrib;
void APIENTRY glad_debug_impl_glPopClientAttrib(void) {    
    _pre_call_callback("glPopClientAttrib", (void*)glPopClientAttrib, 0);
     glad_glPopClientAttrib();
    _post_call_callback("glPopClientAttrib", (void*)glPopClientAttrib, 0);
    
}
PFNGLPOPCLIENTATTRIBPROC glad_debug_glPopClientAttrib = glad_debug_impl_glPopClientAttrib;
PFNGLFOGFPROC glad_glFogf;
void APIENTRY glad_debug_impl_glFogf(GLenum arg0, GLfloat arg1) {    
    _pre_call_callback("glFogf", (void*)glFogf, 2, arg0, arg1);
     glad_glFogf(arg0, arg1);
    _post_call_callback("glFogf", (void*)glFogf, 2, arg0, arg1);
    
}
PFNGLFOGFPROC glad_debug_glFogf = glad_debug_impl_glFogf;
PFNGLCOLOR3IVPROC glad_glColor3iv;
void APIENTRY glad_debug_impl_glColor3iv(const GLint * arg0) {    
    _pre_call_callback("glColor3iv", (void*)glColor3iv, 1, arg0);
     glad_glColor3iv(arg0);
    _post_call_callback("glColor3iv", (void*)glColor3iv, 1, arg0);
    
}
PFNGLCOLOR3IVPROC glad_debug_glColor3iv = glad_debug_impl_glColor3iv;
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("glCompressedTexImage1D", (void*)glCompressedTexImage1D, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
     glad_glCompressedTexImage1D(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
    _post_call_callback("glCompressedTexImage1D", (void*)glCompressedTexImage1D, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
    
}
PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_debug_glCompressedTexImage1D = glad_debug_impl_glCompressedTexImage1D;
PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D;
void APIENTRY glad_debug_impl_glCopyTexSubImage1D(GLenum arg0, GLint arg1, GLint arg2, GLint arg3, GLint arg4, GLsizei arg5) {    
    _pre_call_callback("glCopyTexSubImage1D", (void*)glCopyTexSubImage1D, 6, arg0, arg1, arg2, arg3, arg4, arg5);
     glad_glCopyTexSubImage1D(arg0, arg1, arg2, arg3, arg4, arg5);
    _post_call_callback("glCopyTexSubImage1D", (void*)glCopyTexSubImage1D, 6, arg0, arg1, arg2, arg3, arg4, arg5);
    
}
PFNGLCOPYTEXSUBIMAGE1DPROC glad_debug_glCopyTexSubImage1D = glad_debug_impl_glCopyTexSubImage1D;
PFNGLTEXCOORD1IPROC glad_glTexCoord1i;
void APIENTRY glad_debug_impl_glTexCoord1i(GLint arg0) {    
    _pre_call_callback("glTexCoord1i", (void*)glTexCoord1i, 1, arg0);
     glad_glTexCoord1i(arg0);
    _post_call_callback("glTexCoord1i", (void*)glTexCoord1i, 1, arg0);
    
}
PFNGLTEXCOORD1IPROC glad_debug_glTexCoord1i = glad_debug_impl_glTexCoord1i;
PFNGLTEXCOORD1DPROC glad_glTexCoord1d;
void APIENTRY glad_debug_impl_glTexCoord1d(GLdouble arg0) {    
    _pre_call_callback("glTexCoord1d", (void*)glTexCoord1d, 1, arg0);
     glad_glTexCoord1d(arg0);
    _post_call_callback("glTexCoord1d", (void*)glTexCoord1d, 1, arg0);
    
}
PFNGLTEXCOORD1DPROC glad_debug_glTexCoord1d = glad_debug_impl_glTexCoord1d;
PFNGLTEXCOORD1FPROC glad_glTexCoord1f;
void APIENTRY glad_debug_impl_glTexCoord1f(GLfloat arg0) {    
    _pre_call_callback("glTexCoord1f", (void*)glTexCoord1f, 1, arg0);
     glad_glTexCoord1f(arg0);
    _post_call_callback("glTexCoord1f", (void*)glTexCoord1f, 1, arg0);
    
}
PFNGLTEXCOORD1FPROC glad_debug_glTexCoord1f = glad_debug_impl_glTexCoord1f;
PFNGLENABLECLIENTSTATEPROC glad_glEnableClientState;
void APIENTRY glad_debug_impl_glEnableClientState(GLenum arg0) {    
    _pre_call_callback("glEnableClientState", (void*)glEnableClientState, 1, arg0);
     glad_glEnableClientState(arg0);
    _post_call_callback("glEnableClientState", (void*)glEnableClientState, 1, arg0);
    
}
PFNGLENABLECLIENTSTATEPROC glad_debug_glEnableClientState = glad_debug_impl_glEnableClientState;
PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation;
void APIENTRY glad_debug_impl_glBindAttribLocation(GLuint arg0, GLuint arg1, const GLchar * arg2) {    
    _pre_call_callback("glBindAttribLocation", (void*)glBindAttribLocation, 3, arg0, arg1, arg2);
     glad_glBindAttribLocation(arg0, arg1, arg2);
    _post_call_callback("glBindAttribLocation", (void*)glBindAttribLocation, 3, arg0, arg1, arg2);
    
}
PFNGLBINDATTRIBLOCATIONPROC glad_debug_glBindAttribLocation = glad_debug_impl_glBindAttribLocation;
PFNGLMULTITEXCOORD2SVPROC glad_glMultiTexCoord2sv;
void APIENTRY glad_debug_impl_glMultiTexCoord2sv(GLenum arg0, const GLshort * arg1) {    
    _pre_call_callback("glMultiTexCoord2sv", (void*)glMultiTexCoord2sv, 2, arg0, arg1);
     glad_glMultiTexCoord2sv(arg0, arg1);
    _post_call_callback("glMultiTexCoord2sv", (void*)glMultiTexCoord2sv, 2, arg0, arg1);
    
}
PFNGLMULTITEXCOORD2SVPROC glad_debug_glMultiTexCoord2sv = glad_debug_impl_glMultiTexCoord2sv;
PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv;
void APIENTRY glad_debug_impl_glVertexAttrib1dv(GLuint arg0, const GLdouble * arg1) {    
    _pre_call_callback("glVertexAttrib1dv", (void*)glVertexAttrib1dv, 2, arg0, arg1);
     glad_glVertexAttrib1dv(arg0, arg1);
    _post_call_callback("glVertexAttrib1dv", (void*)glVertexAttrib1dv, 2, arg0, arg1);
    
}
PFNGLVERTEXATTRIB1DVPROC glad_debug_glVertexAttrib1dv = glad_debug_impl_glVertexAttrib1dv;
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("glDrawRangeElements", (void*)glDrawRangeElements, 6, arg0, arg1, arg2, arg3, arg4, arg5);
     glad_glDrawRangeElements(arg0, arg1, arg2, arg3, arg4, arg5);
    _post_call_callback("glDrawRangeElements", (void*)glDrawRangeElements, 6, arg0, arg1, arg2, arg3, arg4, arg5);
    
}
PFNGLDRAWRANGEELEMENTSPROC glad_debug_glDrawRangeElements = glad_debug_impl_glDrawRangeElements;
PFNGLTEXCOORD1SPROC glad_glTexCoord1s;
void APIENTRY glad_debug_impl_glTexCoord1s(GLshort arg0) {    
    _pre_call_callback("glTexCoord1s", (void*)glTexCoord1s, 1, arg0);
     glad_glTexCoord1s(arg0);
    _post_call_callback("glTexCoord1s", (void*)glTexCoord1s, 1, arg0);
    
}
PFNGLTEXCOORD1SPROC glad_debug_glTexCoord1s = glad_debug_impl_glTexCoord1s;
PFNGLBUFFERSUBDATAPROC glad_glBufferSubData;
void APIENTRY glad_debug_impl_glBufferSubData(GLenum arg0, GLintptr arg1, GLsizeiptr arg2, const void * arg3) {    
    _pre_call_callback("glBufferSubData", (void*)glBufferSubData, 4, arg0, arg1, arg2, arg3);
     glad_glBufferSubData(arg0, arg1, arg2, arg3);
    _post_call_callback("glBufferSubData", (void*)glBufferSubData, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLBUFFERSUBDATAPROC glad_debug_glBufferSubData = glad_debug_impl_glBufferSubData;
PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv;
void APIENTRY glad_debug_impl_glVertexAttrib4iv(GLuint arg0, const GLint * arg1) {    
    _pre_call_callback("glVertexAttrib4iv", (void*)glVertexAttrib4iv, 2, arg0, arg1);
     glad_glVertexAttrib4iv(arg0, arg1);
    _post_call_callback("glVertexAttrib4iv", (void*)glVertexAttrib4iv, 2, arg0, arg1);
    
}
PFNGLVERTEXATTRIB4IVPROC glad_debug_glVertexAttrib4iv = glad_debug_impl_glVertexAttrib4iv;
PFNGLGENLISTSPROC glad_glGenLists;
GLuint APIENTRY glad_debug_impl_glGenLists(GLsizei arg0) {    
    GLuint ret;
    _pre_call_callback("glGenLists", (void*)glGenLists, 1, arg0);
    ret =  glad_glGenLists(arg0);
    _post_call_callback("glGenLists", (void*)glGenLists, 1, arg0);
    return ret;
}
PFNGLGENLISTSPROC glad_debug_glGenLists = glad_debug_impl_glGenLists;
PFNGLCOLOR3BVPROC glad_glColor3bv;
void APIENTRY glad_debug_impl_glColor3bv(const GLbyte * arg0) {    
    _pre_call_callback("glColor3bv", (void*)glColor3bv, 1, arg0);
     glad_glColor3bv(arg0);
    _post_call_callback("glColor3bv", (void*)glColor3bv, 1, arg0);
    
}
PFNGLCOLOR3BVPROC glad_debug_glColor3bv = glad_debug_impl_glColor3bv;
PFNGLGETTEXGENDVPROC glad_glGetTexGendv;
void APIENTRY glad_debug_impl_glGetTexGendv(GLenum arg0, GLenum arg1, GLdouble * arg2) {    
    _pre_call_callback("glGetTexGendv", (void*)glGetTexGendv, 3, arg0, arg1, arg2);
     glad_glGetTexGendv(arg0, arg1, arg2);
    _post_call_callback("glGetTexGendv", (void*)glGetTexGendv, 3, arg0, arg1, arg2);
    
}
PFNGLGETTEXGENDVPROC glad_debug_glGetTexGendv = glad_debug_impl_glGetTexGendv;
PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays;
void APIENTRY glad_debug_impl_glMultiDrawArrays(GLenum arg0, const GLint * arg1, const GLsizei * arg2, GLsizei arg3) {    
    _pre_call_callback("glMultiDrawArrays", (void*)glMultiDrawArrays, 4, arg0, arg1, arg2, arg3);
     glad_glMultiDrawArrays(arg0, arg1, arg2, arg3);
    _post_call_callback("glMultiDrawArrays", (void*)glMultiDrawArrays, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLMULTIDRAWARRAYSPROC glad_debug_glMultiDrawArrays = glad_debug_impl_glMultiDrawArrays;
PFNGLENDLISTPROC glad_glEndList;
void APIENTRY glad_debug_impl_glEndList(void) {    
    _pre_call_callback("glEndList", (void*)glEndList, 0);
     glad_glEndList();
    _post_call_callback("glEndList", (void*)glEndList, 0);
    
}
PFNGLENDLISTPROC glad_debug_glEndList = glad_debug_impl_glEndList;
PFNGLCOLOR3USVPROC glad_glColor3usv;
void APIENTRY glad_debug_impl_glColor3usv(const GLushort * arg0) {    
    _pre_call_callback("glColor3usv", (void*)glColor3usv, 1, arg0);
     glad_glColor3usv(arg0);
    _post_call_callback("glColor3usv", (void*)glColor3usv, 1, arg0);
    
}
PFNGLCOLOR3USVPROC glad_debug_glColor3usv = glad_debug_impl_glColor3usv;
PFNGLWINDOWPOS2FVPROC glad_glWindowPos2fv;
void APIENTRY glad_debug_impl_glWindowPos2fv(const GLfloat * arg0) {    
    _pre_call_callback("glWindowPos2fv", (void*)glWindowPos2fv, 1, arg0);
     glad_glWindowPos2fv(arg0);
    _post_call_callback("glWindowPos2fv", (void*)glWindowPos2fv, 1, arg0);
    
}
PFNGLWINDOWPOS2FVPROC glad_debug_glWindowPos2fv = glad_debug_impl_glWindowPos2fv;
PFNGLINDEXMASKPROC glad_glIndexMask;
void APIENTRY glad_debug_impl_glIndexMask(GLuint arg0) {    
    _pre_call_callback("glIndexMask", (void*)glIndexMask, 1, arg0);
     glad_glIndexMask(arg0);
    _post_call_callback("glIndexMask", (void*)glIndexMask, 1, arg0);
    
}
PFNGLINDEXMASKPROC glad_debug_glIndexMask = glad_debug_impl_glIndexMask;
PFNGLPUSHCLIENTATTRIBPROC glad_glPushClientAttrib;
void APIENTRY glad_debug_impl_glPushClientAttrib(GLbitfield arg0) {    
    _pre_call_callback("glPushClientAttrib", (void*)glPushClientAttrib, 1, arg0);
     glad_glPushClientAttrib(arg0);
    _post_call_callback("glPushClientAttrib", (void*)glPushClientAttrib, 1, arg0);
    
}
PFNGLPUSHCLIENTATTRIBPROC glad_debug_glPushClientAttrib = glad_debug_impl_glPushClientAttrib;
PFNGLSHADERSOURCEPROC glad_glShaderSource;
void APIENTRY glad_debug_impl_glShaderSource(GLuint arg0, GLsizei arg1, const GLchar *const* arg2, const GLint * arg3) {    
    _pre_call_callback("glShaderSource", (void*)glShaderSource, 4, arg0, arg1, arg2, arg3);
     glad_glShaderSource(arg0, arg1, arg2, arg3);
    _post_call_callback("glShaderSource", (void*)glShaderSource, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLSHADERSOURCEPROC glad_debug_glShaderSource = glad_debug_impl_glShaderSource;
PFNGLCLEARACCUMPROC glad_glClearAccum;
void APIENTRY glad_debug_impl_glClearAccum(GLfloat arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3) {    
    _pre_call_callback("glClearAccum", (void*)glClearAccum, 4, arg0, arg1, arg2, arg3);
     glad_glClearAccum(arg0, arg1, arg2, arg3);
    _post_call_callback("glClearAccum", (void*)glClearAccum, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLCLEARACCUMPROC glad_debug_glClearAccum = glad_debug_impl_glClearAccum;
PFNGLUNIFORM2FPROC glad_glUniform2f;
void APIENTRY glad_debug_impl_glUniform2f(GLint arg0, GLfloat arg1, GLfloat arg2) {    
    _pre_call_callback("glUniform2f", (void*)glUniform2f, 3, arg0, arg1, arg2);
     glad_glUniform2f(arg0, arg1, arg2);
    _post_call_callback("glUniform2f", (void*)glUniform2f, 3, arg0, arg1, arg2);
    
}
PFNGLUNIFORM2FPROC glad_debug_glUniform2f = glad_debug_impl_glUniform2f;
PFNGLBEGINQUERYPROC glad_glBeginQuery;
void APIENTRY glad_debug_impl_glBeginQuery(GLenum arg0, GLuint arg1) {    
    _pre_call_callback("glBeginQuery", (void*)glBeginQuery, 2, arg0, arg1);
     glad_glBeginQuery(arg0, arg1);
    _post_call_callback("glBeginQuery", (void*)glBeginQuery, 2, arg0, arg1);
    
}
PFNGLBEGINQUERYPROC glad_debug_glBeginQuery = glad_debug_impl_glBeginQuery;
PFNGLBINDBUFFERPROC glad_glBindBuffer;
void APIENTRY glad_debug_impl_glBindBuffer(GLenum arg0, GLuint arg1) {    
    _pre_call_callback("glBindBuffer", (void*)glBindBuffer, 2, arg0, arg1);
     glad_glBindBuffer(arg0, arg1);
    _post_call_callback("glBindBuffer", (void*)glBindBuffer, 2, arg0, arg1);
    
}
PFNGLBINDBUFFERPROC glad_debug_glBindBuffer = glad_debug_impl_glBindBuffer;
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("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("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("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("glMap2f", (void*)glMap2f, 10, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
    
}
PFNGLMAP2FPROC glad_debug_glMap2f = glad_debug_impl_glMap2f;
PFNGLVERTEX4DPROC glad_glVertex4d;
void APIENTRY glad_debug_impl_glVertex4d(GLdouble arg0, GLdouble arg1, GLdouble arg2, GLdouble arg3) {    
    _pre_call_callback("glVertex4d", (void*)glVertex4d, 4, arg0, arg1, arg2, arg3);
     glad_glVertex4d(arg0, arg1, arg2, arg3);
    _post_call_callback("glVertex4d", (void*)glVertex4d, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLVERTEX4DPROC glad_debug_glVertex4d = glad_debug_impl_glVertex4d;
PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv;
void APIENTRY glad_debug_impl_glUniformMatrix2fv(GLint arg0, GLsizei arg1, GLboolean arg2, const GLfloat * arg3) {    
    _pre_call_callback("glUniformMatrix2fv", (void*)glUniformMatrix2fv, 4, arg0, arg1, arg2, arg3);
     glad_glUniformMatrix2fv(arg0, arg1, arg2, arg3);
    _post_call_callback("glUniformMatrix2fv", (void*)glUniformMatrix2fv, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLUNIFORMMATRIX2FVPROC glad_debug_glUniformMatrix2fv = glad_debug_impl_glUniformMatrix2fv;
PFNGLTEXCOORD1SVPROC glad_glTexCoord1sv;
void APIENTRY glad_debug_impl_glTexCoord1sv(const GLshort * arg0) {    
    _pre_call_callback("glTexCoord1sv", (void*)glTexCoord1sv, 1, arg0);
     glad_glTexCoord1sv(arg0);
    _post_call_callback("glTexCoord1sv", (void*)glTexCoord1sv, 1, arg0);
    
}
PFNGLTEXCOORD1SVPROC glad_debug_glTexCoord1sv = glad_debug_impl_glTexCoord1sv;
PFNGLBUFFERDATAPROC glad_glBufferData;
void APIENTRY glad_debug_impl_glBufferData(GLenum arg0, GLsizeiptr arg1, const void * arg2, GLenum arg3) {    
    _pre_call_callback("glBufferData", (void*)glBufferData, 4, arg0, arg1, arg2, arg3);
     glad_glBufferData(arg0, arg1, arg2, arg3);
    _post_call_callback("glBufferData", (void*)glBufferData, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLBUFFERDATAPROC glad_debug_glBufferData = glad_debug_impl_glBufferData;
PFNGLEVALPOINT1PROC glad_glEvalPoint1;
void APIENTRY glad_debug_impl_glEvalPoint1(GLint arg0) {    
    _pre_call_callback("glEvalPoint1", (void*)glEvalPoint1, 1, arg0);
     glad_glEvalPoint1(arg0);
    _post_call_callback("glEvalPoint1", (void*)glEvalPoint1, 1, arg0);
    
}
PFNGLEVALPOINT1PROC glad_debug_glEvalPoint1 = glad_debug_impl_glEvalPoint1;
PFNGLTEXCOORD1DVPROC glad_glTexCoord1dv;
void APIENTRY glad_debug_impl_glTexCoord1dv(const GLdouble * arg0) {    
    _pre_call_callback("glTexCoord1dv", (void*)glTexCoord1dv, 1, arg0);
     glad_glTexCoord1dv(arg0);
    _post_call_callback("glTexCoord1dv", (void*)glTexCoord1dv, 1, arg0);
    
}
PFNGLTEXCOORD1DVPROC glad_debug_glTexCoord1dv = glad_debug_impl_glTexCoord1dv;
PFNGLGETERRORPROC glad_glGetError;
GLenum APIENTRY glad_debug_impl_glGetError(void) {    
    GLenum ret;
    _pre_call_callback("glGetError", (void*)glGetError, 0);
    ret =  glad_glGetError();
    _post_call_callback("glGetError", (void*)glGetError, 0);
    return ret;
}
PFNGLGETERRORPROC glad_debug_glGetError = glad_debug_impl_glGetError;
PFNGLGETTEXENVIVPROC glad_glGetTexEnviv;
void APIENTRY glad_debug_impl_glGetTexEnviv(GLenum arg0, GLenum arg1, GLint * arg2) {    
    _pre_call_callback("glGetTexEnviv", (void*)glGetTexEnviv, 3, arg0, arg1, arg2);
     glad_glGetTexEnviv(arg0, arg1, arg2);
    _post_call_callback("glGetTexEnviv", (void*)glGetTexEnviv, 3, arg0, arg1, arg2);
    
}
PFNGLGETTEXENVIVPROC glad_debug_glGetTexEnviv = glad_debug_impl_glGetTexEnviv;
PFNGLGETPROGRAMIVPROC glad_glGetProgramiv;
void APIENTRY glad_debug_impl_glGetProgramiv(GLuint arg0, GLenum arg1, GLint * arg2) {    
    _pre_call_callback("glGetProgramiv", (void*)glGetProgramiv, 3, arg0, arg1, arg2);
     glad_glGetProgramiv(arg0, arg1, arg2);
    _post_call_callback("glGetProgramiv", (void*)glGetProgramiv, 3, arg0, arg1, arg2);
    
}
PFNGLGETPROGRAMIVPROC glad_debug_glGetProgramiv = glad_debug_impl_glGetProgramiv;
PFNGLGETFLOATVPROC glad_glGetFloatv;
void APIENTRY glad_debug_impl_glGetFloatv(GLenum arg0, GLfloat * arg1) {    
    _pre_call_callback("glGetFloatv", (void*)glGetFloatv, 2, arg0, arg1);
     glad_glGetFloatv(arg0, arg1);
    _post_call_callback("glGetFloatv", (void*)glGetFloatv, 2, arg0, arg1);
    
}
PFNGLGETFLOATVPROC glad_debug_glGetFloatv = glad_debug_impl_glGetFloatv;
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("glTexSubImage1D", (void*)glTexSubImage1D, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
     glad_glTexSubImage1D(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
    _post_call_callback("glTexSubImage1D", (void*)glTexSubImage1D, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
    
}
PFNGLTEXSUBIMAGE1DPROC glad_debug_glTexSubImage1D = glad_debug_impl_glTexSubImage1D;
PFNGLMULTITEXCOORD2FVPROC glad_glMultiTexCoord2fv;
void APIENTRY glad_debug_impl_glMultiTexCoord2fv(GLenum arg0, const GLfloat * arg1) {    
    _pre_call_callback("glMultiTexCoord2fv", (void*)glMultiTexCoord2fv, 2, arg0, arg1);
     glad_glMultiTexCoord2fv(arg0, arg1);
    _post_call_callback("glMultiTexCoord2fv", (void*)glMultiTexCoord2fv, 2, arg0, arg1);
    
}
PFNGLMULTITEXCOORD2FVPROC glad_debug_glMultiTexCoord2fv = glad_debug_impl_glMultiTexCoord2fv;
PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv;
void APIENTRY glad_debug_impl_glVertexAttrib2fv(GLuint arg0, const GLfloat * arg1) {    
    _pre_call_callback("glVertexAttrib2fv", (void*)glVertexAttrib2fv, 2, arg0, arg1);
     glad_glVertexAttrib2fv(arg0, arg1);
    _post_call_callback("glVertexAttrib2fv", (void*)glVertexAttrib2fv, 2, arg0, arg1);
    
}
PFNGLVERTEXATTRIB2FVPROC glad_debug_glVertexAttrib2fv = glad_debug_impl_glVertexAttrib2fv;
PFNGLEVALCOORD1DPROC glad_glEvalCoord1d;
void APIENTRY glad_debug_impl_glEvalCoord1d(GLdouble arg0) {    
    _pre_call_callback("glEvalCoord1d", (void*)glEvalCoord1d, 1, arg0);
     glad_glEvalCoord1d(arg0);
    _post_call_callback("glEvalCoord1d", (void*)glEvalCoord1d, 1, arg0);
    
}
PFNGLEVALCOORD1DPROC glad_debug_glEvalCoord1d = glad_debug_impl_glEvalCoord1d;
PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv;
void APIENTRY glad_debug_impl_glGetTexLevelParameterfv(GLenum arg0, GLint arg1, GLenum arg2, GLfloat * arg3) {    
    _pre_call_callback("glGetTexLevelParameterfv", (void*)glGetTexLevelParameterfv, 4, arg0, arg1, arg2, arg3);
     glad_glGetTexLevelParameterfv(arg0, arg1, arg2, arg3);
    _post_call_callback("glGetTexLevelParameterfv", (void*)glGetTexLevelParameterfv, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLGETTEXLEVELPARAMETERFVPROC glad_debug_glGetTexLevelParameterfv = glad_debug_impl_glGetTexLevelParameterfv;
PFNGLEVALCOORD1FPROC glad_glEvalCoord1f;
void APIENTRY glad_debug_impl_glEvalCoord1f(GLfloat arg0) {    
    _pre_call_callback("glEvalCoord1f", (void*)glEvalCoord1f, 1, arg0);
     glad_glEvalCoord1f(arg0);
    _post_call_callback("glEvalCoord1f", (void*)glEvalCoord1f, 1, arg0);
    
}
PFNGLEVALCOORD1FPROC glad_debug_glEvalCoord1f = glad_debug_impl_glEvalCoord1f;
PFNGLPIXELMAPFVPROC glad_glPixelMapfv;
void APIENTRY glad_debug_impl_glPixelMapfv(GLenum arg0, GLsizei arg1, const GLfloat * arg2) {    
    _pre_call_callback("glPixelMapfv", (void*)glPixelMapfv, 3, arg0, arg1, arg2);
     glad_glPixelMapfv(arg0, arg1, arg2);
    _post_call_callback("glPixelMapfv", (void*)glPixelMapfv, 3, arg0, arg1, arg2);
    
}
PFNGLPIXELMAPFVPROC glad_debug_glPixelMapfv = glad_debug_impl_glPixelMapfv;
PFNGLGETPIXELMAPUSVPROC glad_glGetPixelMapusv;
void APIENTRY glad_debug_impl_glGetPixelMapusv(GLenum arg0, GLushort * arg1) {    
    _pre_call_callback("glGetPixelMapusv", (void*)glGetPixelMapusv, 2, arg0, arg1);
     glad_glGetPixelMapusv(arg0, arg1);
    _post_call_callback("glGetPixelMapusv", (void*)glGetPixelMapusv, 2, arg0, arg1);
    
}
PFNGLGETPIXELMAPUSVPROC glad_debug_glGetPixelMapusv = glad_debug_impl_glGetPixelMapusv;
PFNGLGETINTEGERVPROC glad_glGetIntegerv;
void APIENTRY glad_debug_impl_glGetIntegerv(GLenum arg0, GLint * arg1) {    
    _pre_call_callback("glGetIntegerv", (void*)glGetIntegerv, 2, arg0, arg1);
     glad_glGetIntegerv(arg0, arg1);
    _post_call_callback("glGetIntegerv", (void*)glGetIntegerv, 2, arg0, arg1);
    
}
PFNGLGETINTEGERVPROC glad_debug_glGetIntegerv = glad_debug_impl_glGetIntegerv;
PFNGLACCUMPROC glad_glAccum;
void APIENTRY glad_debug_impl_glAccum(GLenum arg0, GLfloat arg1) {    
    _pre_call_callback("glAccum", (void*)glAccum, 2, arg0, arg1);
     glad_glAccum(arg0, arg1);
    _post_call_callback("glAccum", (void*)glAccum, 2, arg0, arg1);
    
}
PFNGLACCUMPROC glad_debug_glAccum = glad_debug_impl_glAccum;
PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv;
void APIENTRY glad_debug_impl_glGetBufferPointerv(GLenum arg0, GLenum arg1, void ** arg2) {    
    _pre_call_callback("glGetBufferPointerv", (void*)glGetBufferPointerv, 3, arg0, arg1, arg2);
     glad_glGetBufferPointerv(arg0, arg1, arg2);
    _post_call_callback("glGetBufferPointerv", (void*)glGetBufferPointerv, 3, arg0, arg1, arg2);
    
}
PFNGLGETBUFFERPOINTERVPROC glad_debug_glGetBufferPointerv = glad_debug_impl_glGetBufferPointerv;
PFNGLRASTERPOS4DVPROC glad_glRasterPos4dv;
void APIENTRY glad_debug_impl_glRasterPos4dv(const GLdouble * arg0) {    
    _pre_call_callback("glRasterPos4dv", (void*)glRasterPos4dv, 1, arg0);
     glad_glRasterPos4dv(arg0);
    _post_call_callback("glRasterPos4dv", (void*)glRasterPos4dv, 1, arg0);
    
}
PFNGLRASTERPOS4DVPROC glad_debug_glRasterPos4dv = glad_debug_impl_glRasterPos4dv;
PFNGLTEXCOORD2IVPROC glad_glTexCoord2iv;
void APIENTRY glad_debug_impl_glTexCoord2iv(const GLint * arg0) {    
    _pre_call_callback("glTexCoord2iv", (void*)glTexCoord2iv, 1, arg0);
     glad_glTexCoord2iv(arg0);
    _post_call_callback("glTexCoord2iv", (void*)glTexCoord2iv, 1, arg0);
    
}
PFNGLTEXCOORD2IVPROC glad_debug_glTexCoord2iv = glad_debug_impl_glTexCoord2iv;
PFNGLISQUERYPROC glad_glIsQuery;
GLboolean APIENTRY glad_debug_impl_glIsQuery(GLuint arg0) {    
    GLboolean ret;
    _pre_call_callback("glIsQuery", (void*)glIsQuery, 1, arg0);
    ret =  glad_glIsQuery(arg0);
    _post_call_callback("glIsQuery", (void*)glIsQuery, 1, arg0);
    return ret;
}
PFNGLISQUERYPROC glad_debug_glIsQuery = glad_debug_impl_glIsQuery;
PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv;
void APIENTRY glad_debug_impl_glVertexAttrib4sv(GLuint arg0, const GLshort * arg1) {    
    _pre_call_callback("glVertexAttrib4sv", (void*)glVertexAttrib4sv, 2, arg0, arg1);
     glad_glVertexAttrib4sv(arg0, arg1);
    _post_call_callback("glVertexAttrib4sv", (void*)glVertexAttrib4sv, 2, arg0, arg1);
    
}
PFNGLVERTEXATTRIB4SVPROC glad_debug_glVertexAttrib4sv = glad_debug_impl_glVertexAttrib4sv;
PFNGLWINDOWPOS3DVPROC glad_glWindowPos3dv;
void APIENTRY glad_debug_impl_glWindowPos3dv(const GLdouble * arg0) {    
    _pre_call_callback("glWindowPos3dv", (void*)glWindowPos3dv, 1, arg0);
     glad_glWindowPos3dv(arg0);
    _post_call_callback("glWindowPos3dv", (void*)glWindowPos3dv, 1, arg0);
    
}
PFNGLWINDOWPOS3DVPROC glad_debug_glWindowPos3dv = glad_debug_impl_glWindowPos3dv;
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("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("glTexImage2D", (void*)glTexImage2D, 9, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
    
}
PFNGLTEXIMAGE2DPROC glad_debug_glTexImage2D = glad_debug_impl_glTexImage2D;
PFNGLSTENCILMASKPROC glad_glStencilMask;
void APIENTRY glad_debug_impl_glStencilMask(GLuint arg0) {    
    _pre_call_callback("glStencilMask", (void*)glStencilMask, 1, arg0);
     glad_glStencilMask(arg0);
    _post_call_callback("glStencilMask", (void*)glStencilMask, 1, arg0);
    
}
PFNGLSTENCILMASKPROC glad_debug_glStencilMask = glad_debug_impl_glStencilMask;
PFNGLDRAWPIXELSPROC glad_glDrawPixels;
void APIENTRY glad_debug_impl_glDrawPixels(GLsizei arg0, GLsizei arg1, GLenum arg2, GLenum arg3, const void * arg4) {    
    _pre_call_callback("glDrawPixels", (void*)glDrawPixels, 5, arg0, arg1, arg2, arg3, arg4);
     glad_glDrawPixels(arg0, arg1, arg2, arg3, arg4);
    _post_call_callback("glDrawPixels", (void*)glDrawPixels, 5, arg0, arg1, arg2, arg3, arg4);
    
}
PFNGLDRAWPIXELSPROC glad_debug_glDrawPixels = glad_debug_impl_glDrawPixels;
PFNGLMULTMATRIXDPROC glad_glMultMatrixd;
void APIENTRY glad_debug_impl_glMultMatrixd(const GLdouble * arg0) {    
    _pre_call_callback("glMultMatrixd", (void*)glMultMatrixd, 1, arg0);
     glad_glMultMatrixd(arg0);
    _post_call_callback("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("glMultMatrixf", (void*)glMultMatrixf, 1, arg0);
     glad_glMultMatrixf(arg0);
    _post_call_callback("glMultMatrixf", (void*)glMultMatrixf, 1, arg0);
    
}
PFNGLMULTMATRIXFPROC glad_debug_glMultMatrixf = glad_debug_impl_glMultMatrixf;
PFNGLISTEXTUREPROC glad_glIsTexture;
GLboolean APIENTRY glad_debug_impl_glIsTexture(GLuint arg0) {    
    GLboolean ret;
    _pre_call_callback("glIsTexture", (void*)glIsTexture, 1, arg0);
    ret =  glad_glIsTexture(arg0);
    _post_call_callback("glIsTexture", (void*)glIsTexture, 1, arg0);
    return ret;
}
PFNGLISTEXTUREPROC glad_debug_glIsTexture = glad_debug_impl_glIsTexture;
PFNGLGETMATERIALIVPROC glad_glGetMaterialiv;
void APIENTRY glad_debug_impl_glGetMaterialiv(GLenum arg0, GLenum arg1, GLint * arg2) {    
    _pre_call_callback("glGetMaterialiv", (void*)glGetMaterialiv, 3, arg0, arg1, arg2);
     glad_glGetMaterialiv(arg0, arg1, arg2);
    _post_call_callback("glGetMaterialiv", (void*)glGetMaterialiv, 3, arg0, arg1, arg2);
    
}
PFNGLGETMATERIALIVPROC glad_debug_glGetMaterialiv = glad_debug_impl_glGetMaterialiv;
PFNGLUNIFORM1FVPROC glad_glUniform1fv;
void APIENTRY glad_debug_impl_glUniform1fv(GLint arg0, GLsizei arg1, const GLfloat * arg2) {    
    _pre_call_callback("glUniform1fv", (void*)glUniform1fv, 3, arg0, arg1, arg2);
     glad_glUniform1fv(arg0, arg1, arg2);
    _post_call_callback("glUniform1fv", (void*)glUniform1fv, 3, arg0, arg1, arg2);
    
}
PFNGLUNIFORM1FVPROC glad_debug_glUniform1fv = glad_debug_impl_glUniform1fv;
PFNGLLOADMATRIXFPROC glad_glLoadMatrixf;
void APIENTRY glad_debug_impl_glLoadMatrixf(const GLfloat * arg0) {    
    _pre_call_callback("glLoadMatrixf", (void*)glLoadMatrixf, 1, arg0);
     glad_glLoadMatrixf(arg0);
    _post_call_callback("glLoadMatrixf", (void*)glLoadMatrixf, 1, arg0);
    
}
PFNGLLOADMATRIXFPROC glad_debug_glLoadMatrixf = glad_debug_impl_glLoadMatrixf;
PFNGLLOADMATRIXDPROC glad_glLoadMatrixd;
void APIENTRY glad_debug_impl_glLoadMatrixd(const GLdouble * arg0) {    
    _pre_call_callback("glLoadMatrixd", (void*)glLoadMatrixd, 1, arg0);
     glad_glLoadMatrixd(arg0);
    _post_call_callback("glLoadMatrixd", (void*)glLoadMatrixd, 1, arg0);
    
}
PFNGLLOADMATRIXDPROC glad_debug_glLoadMatrixd = glad_debug_impl_glLoadMatrixd;
PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv;
void APIENTRY glad_debug_impl_glTexParameterfv(GLenum arg0, GLenum arg1, const GLfloat * arg2) {    
    _pre_call_callback("glTexParameterfv", (void*)glTexParameterfv, 3, arg0, arg1, arg2);
     glad_glTexParameterfv(arg0, arg1, arg2);
    _post_call_callback("glTexParameterfv", (void*)glTexParameterfv, 3, arg0, arg1, arg2);
    
}
PFNGLTEXPARAMETERFVPROC glad_debug_glTexParameterfv = glad_debug_impl_glTexParameterfv;
PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv;
void APIENTRY glad_debug_impl_glUniformMatrix3fv(GLint arg0, GLsizei arg1, GLboolean arg2, const GLfloat * arg3) {    
    _pre_call_callback("glUniformMatrix3fv", (void*)glUniformMatrix3fv, 4, arg0, arg1, arg2, arg3);
     glad_glUniformMatrix3fv(arg0, arg1, arg2, arg3);
    _post_call_callback("glUniformMatrix3fv", (void*)glUniformMatrix3fv, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLUNIFORMMATRIX3FVPROC glad_debug_glUniformMatrix3fv = glad_debug_impl_glUniformMatrix3fv;
PFNGLVERTEX4FPROC glad_glVertex4f;
void APIENTRY glad_debug_impl_glVertex4f(GLfloat arg0, GLfloat arg1, GLfloat arg2, GLfloat arg3) {    
    _pre_call_callback("glVertex4f", (void*)glVertex4f, 4, arg0, arg1, arg2, arg3);
     glad_glVertex4f(arg0, arg1, arg2, arg3);
    _post_call_callback("glVertex4f", (void*)glVertex4f, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLVERTEX4FPROC glad_debug_glVertex4f = glad_debug_impl_glVertex4f;
PFNGLRECTSVPROC glad_glRectsv;
void APIENTRY glad_debug_impl_glRectsv(const GLshort * arg0, const GLshort * arg1) {    
    _pre_call_callback("glRectsv", (void*)glRectsv, 2, arg0, arg1);
     glad_glRectsv(arg0, arg1);
    _post_call_callback("glRectsv", (void*)glRectsv, 2, arg0, arg1);
    
}
PFNGLRECTSVPROC glad_debug_glRectsv = glad_debug_impl_glRectsv;
PFNGLCOLOR4USVPROC glad_glColor4usv;
void APIENTRY glad_debug_impl_glColor4usv(const GLushort * arg0) {    
    _pre_call_callback("glColor4usv", (void*)glColor4usv, 1, arg0);
     glad_glColor4usv(arg0);
    _post_call_callback("glColor4usv", (void*)glColor4usv, 1, arg0);
    
}
PFNGLCOLOR4USVPROC glad_debug_glColor4usv = glad_debug_impl_glColor4usv;
PFNGLPOLYGONSTIPPLEPROC glad_glPolygonStipple;
void APIENTRY glad_debug_impl_glPolygonStipple(const GLubyte * arg0) {    
    _pre_call_callback("glPolygonStipple", (void*)glPolygonStipple, 1, arg0);
     glad_glPolygonStipple(arg0);
    _post_call_callback("glPolygonStipple", (void*)glPolygonStipple, 1, arg0);
    
}
PFNGLPOLYGONSTIPPLEPROC glad_debug_glPolygonStipple = glad_debug_impl_glPolygonStipple;
PFNGLINTERLEAVEDARRAYSPROC glad_glInterleavedArrays;
void APIENTRY glad_debug_impl_glInterleavedArrays(GLenum arg0, GLsizei arg1, const void * arg2) {    
    _pre_call_callback("glInterleavedArrays", (void*)glInterleavedArrays, 3, arg0, arg1, arg2);
     glad_glInterleavedArrays(arg0, arg1, arg2);
    _post_call_callback("glInterleavedArrays", (void*)glInterleavedArrays, 3, arg0, arg1, arg2);
    
}
PFNGLINTERLEAVEDARRAYSPROC glad_debug_glInterleavedArrays = glad_debug_impl_glInterleavedArrays;
PFNGLNORMAL3IPROC glad_glNormal3i;
void APIENTRY glad_debug_impl_glNormal3i(GLint arg0, GLint arg1, GLint arg2) {    
    _pre_call_callback("glNormal3i", (void*)glNormal3i, 3, arg0, arg1, arg2);
     glad_glNormal3i(arg0, arg1, arg2);
    _post_call_callback("glNormal3i", (void*)glNormal3i, 3, arg0, arg1, arg2);
    
}
PFNGLNORMAL3IPROC glad_debug_glNormal3i = glad_debug_impl_glNormal3i;
PFNGLNORMAL3FPROC glad_glNormal3f;
void APIENTRY glad_debug_impl_glNormal3f(GLfloat arg0, GLfloat arg1, GLfloat arg2) {    
    _pre_call_callback("glNormal3f", (void*)glNormal3f, 3, arg0, arg1, arg2);
     glad_glNormal3f(arg0, arg1, arg2);
    _post_call_callback("glNormal3f", (void*)glNormal3f, 3, arg0, arg1, arg2);
    
}
PFNGLNORMAL3FPROC glad_debug_glNormal3f = glad_debug_impl_glNormal3f;
PFNGLNORMAL3DPROC glad_glNormal3d;
void APIENTRY glad_debug_impl_glNormal3d(GLdouble arg0, GLdouble arg1, GLdouble arg2) {    
    _pre_call_callback("glNormal3d", (void*)glNormal3d, 3, arg0, arg1, arg2);
     glad_glNormal3d(arg0, arg1, arg2);
    _post_call_callback("glNormal3d", (void*)glNormal3d, 3, arg0, arg1, arg2);
    
}
PFNGLNORMAL3DPROC glad_debug_glNormal3d = glad_debug_impl_glNormal3d;
PFNGLNORMAL3BPROC glad_glNormal3b;
void APIENTRY glad_debug_impl_glNormal3b(GLbyte arg0, GLbyte arg1, GLbyte arg2) {    
    _pre_call_callback("glNormal3b", (void*)glNormal3b, 3, arg0, arg1, arg2);
     glad_glNormal3b(arg0, arg1, arg2);
    _post_call_callback("glNormal3b", (void*)glNormal3b, 3, arg0, arg1, arg2);
    
}
PFNGLNORMAL3BPROC glad_debug_glNormal3b = glad_debug_impl_glNormal3b;
PFNGLPIXELMAPUSVPROC glad_glPixelMapusv;
void APIENTRY glad_debug_impl_glPixelMapusv(GLenum arg0, GLsizei arg1, const GLushort * arg2) {    
    _pre_call_callback("glPixelMapusv", (void*)glPixelMapusv, 3, arg0, arg1, arg2);
     glad_glPixelMapusv(arg0, arg1, arg2);
    _post_call_callback("glPixelMapusv", (void*)glPixelMapusv, 3, arg0, arg1, arg2);
    
}
PFNGLPIXELMAPUSVPROC glad_debug_glPixelMapusv = glad_debug_impl_glPixelMapusv;
PFNGLGETTEXGENIVPROC glad_glGetTexGeniv;
void APIENTRY glad_debug_impl_glGetTexGeniv(GLenum arg0, GLenum arg1, GLint * arg2) {    
    _pre_call_callback("glGetTexGeniv", (void*)glGetTexGeniv, 3, arg0, arg1, arg2);
     glad_glGetTexGeniv(arg0, arg1, arg2);
    _post_call_callback("glGetTexGeniv", (void*)glGetTexGeniv, 3, arg0, arg1, arg2);
    
}
PFNGLGETTEXGENIVPROC glad_debug_glGetTexGeniv = glad_debug_impl_glGetTexGeniv;
PFNGLARRAYELEMENTPROC glad_glArrayElement;
void APIENTRY glad_debug_impl_glArrayElement(GLint arg0) {    
    _pre_call_callback("glArrayElement", (void*)glArrayElement, 1, arg0);
     glad_glArrayElement(arg0);
    _post_call_callback("glArrayElement", (void*)glArrayElement, 1, arg0);
    
}
PFNGLARRAYELEMENTPROC glad_debug_glArrayElement = glad_debug_impl_glArrayElement;
PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d;
void APIENTRY glad_debug_impl_glVertexAttrib2d(GLuint arg0, GLdouble arg1, GLdouble arg2) {    
    _pre_call_callback("glVertexAttrib2d", (void*)glVertexAttrib2d, 3, arg0, arg1, arg2);
     glad_glVertexAttrib2d(arg0, arg1, arg2);
    _post_call_callback("glVertexAttrib2d", (void*)glVertexAttrib2d, 3, arg0, arg1, arg2);
    
}
PFNGLVERTEXATTRIB2DPROC glad_debug_glVertexAttrib2d = glad_debug_impl_glVertexAttrib2d;
PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f;
void APIENTRY glad_debug_impl_glVertexAttrib2f(GLuint arg0, GLfloat arg1, GLfloat arg2) {    
    _pre_call_callback("glVertexAttrib2f", (void*)glVertexAttrib2f, 3, arg0, arg1, arg2);
     glad_glVertexAttrib2f(arg0, arg1, arg2);
    _post_call_callback("glVertexAttrib2f", (void*)glVertexAttrib2f, 3, arg0, arg1, arg2);
    
}
PFNGLVERTEXATTRIB2FPROC glad_debug_glVertexAttrib2f = glad_debug_impl_glVertexAttrib2f;
PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv;
void APIENTRY glad_debug_impl_glVertexAttrib3dv(GLuint arg0, const GLdouble * arg1) {    
    _pre_call_callback("glVertexAttrib3dv", (void*)glVertexAttrib3dv, 2, arg0, arg1);
     glad_glVertexAttrib3dv(arg0, arg1);
    _post_call_callback("glVertexAttrib3dv", (void*)glVertexAttrib3dv, 2, arg0, arg1);
    
}
PFNGLVERTEXATTRIB3DVPROC glad_debug_glVertexAttrib3dv = glad_debug_impl_glVertexAttrib3dv;
PFNGLDEPTHMASKPROC glad_glDepthMask;
void APIENTRY glad_debug_impl_glDepthMask(GLboolean arg0) {    
    _pre_call_callback("glDepthMask", (void*)glDepthMask, 1, arg0);
     glad_glDepthMask(arg0);
    _post_call_callback("glDepthMask", (void*)glDepthMask, 1, arg0);
    
}
PFNGLDEPTHMASKPROC glad_debug_glDepthMask = glad_debug_impl_glDepthMask;
PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s;
void APIENTRY glad_debug_impl_glVertexAttrib2s(GLuint arg0, GLshort arg1, GLshort arg2) {    
    _pre_call_callback("glVertexAttrib2s", (void*)glVertexAttrib2s, 3, arg0, arg1, arg2);
     glad_glVertexAttrib2s(arg0, arg1, arg2);
    _post_call_callback("glVertexAttrib2s", (void*)glVertexAttrib2s, 3, arg0, arg1, arg2);
    
}
PFNGLVERTEXATTRIB2SPROC glad_debug_glVertexAttrib2s = glad_debug_impl_glVertexAttrib2s;
PFNGLCOLOR3FVPROC glad_glColor3fv;
void APIENTRY glad_debug_impl_glColor3fv(const GLfloat * arg0) {    
    _pre_call_callback("glColor3fv", (void*)glColor3fv, 1, arg0);
     glad_glColor3fv(arg0);
    _post_call_callback("glColor3fv", (void*)glColor3fv, 1, arg0);
    
}
PFNGLCOLOR3FVPROC glad_debug_glColor3fv = glad_debug_impl_glColor3fv;
PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv;
void APIENTRY glad_debug_impl_glUniformMatrix4fv(GLint arg0, GLsizei arg1, GLboolean arg2, const GLfloat * arg3) {    
    _pre_call_callback("glUniformMatrix4fv", (void*)glUniformMatrix4fv, 4, arg0, arg1, arg2, arg3);
     glad_glUniformMatrix4fv(arg0, arg1, arg2, arg3);
    _post_call_callback("glUniformMatrix4fv", (void*)glUniformMatrix4fv, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLUNIFORMMATRIX4FVPROC glad_debug_glUniformMatrix4fv = glad_debug_impl_glUniformMatrix4fv;
PFNGLUNIFORM4FVPROC glad_glUniform4fv;
void APIENTRY glad_debug_impl_glUniform4fv(GLint arg0, GLsizei arg1, const GLfloat * arg2) {    
    _pre_call_callback("glUniform4fv", (void*)glUniform4fv, 3, arg0, arg1, arg2);
     glad_glUniform4fv(arg0, arg1, arg2);
    _post_call_callback("glUniform4fv", (void*)glUniform4fv, 3, arg0, arg1, arg2);
    
}
PFNGLUNIFORM4FVPROC glad_debug_glUniform4fv = glad_debug_impl_glUniform4fv;
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("glGetActiveUniform", (void*)glGetActiveUniform, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
     glad_glGetActiveUniform(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
    _post_call_callback("glGetActiveUniform", (void*)glGetActiveUniform, 7, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
    
}
PFNGLGETACTIVEUNIFORMPROC glad_debug_glGetActiveUniform = glad_debug_impl_glGetActiveUniform;
PFNGLCOLORPOINTERPROC glad_glColorPointer;
void APIENTRY glad_debug_impl_glColorPointer(GLint arg0, GLenum arg1, GLsizei arg2, const void * arg3) {    
    _pre_call_callback("glColorPointer", (void*)glColorPointer, 4, arg0, arg1, arg2, arg3);
     glad_glColorPointer(arg0, arg1, arg2, arg3);
    _post_call_callback("glColorPointer", (void*)glColorPointer, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLCOLORPOINTERPROC glad_debug_glColorPointer = glad_debug_impl_glColorPointer;
PFNGLFRONTFACEPROC glad_glFrontFace;
void APIENTRY glad_debug_impl_glFrontFace(GLenum arg0) {    
    _pre_call_callback("glFrontFace", (void*)glFrontFace, 1, arg0);
     glad_glFrontFace(arg0);
    _post_call_callback("glFrontFace", (void*)glFrontFace, 1, arg0);
    
}
PFNGLFRONTFACEPROC glad_debug_glFrontFace = glad_debug_impl_glFrontFace;
int GLAD_GL_ARB_framebuffer_object;
int GLAD_GL_EXT_framebuffer_object;
int GLAD_GL_ARB_texture_float;
int GLAD_GL_ARB_vertex_array_object;
int GLAD_GL_ARB_vertex_buffer_object;
int GLAD_GL_ARB_pixel_buffer_object;
int GLAD_GL_APPLE_vertex_array_object;
PFNGLBINDVERTEXARRAYAPPLEPROC glad_glBindVertexArrayAPPLE;
void APIENTRY glad_debug_impl_glBindVertexArrayAPPLE(GLuint arg0) {    
    _pre_call_callback("glBindVertexArrayAPPLE", (void*)glBindVertexArrayAPPLE, 1, arg0);
     glad_glBindVertexArrayAPPLE(arg0);
    _post_call_callback("glBindVertexArrayAPPLE", (void*)glBindVertexArrayAPPLE, 1, arg0);
    
}
PFNGLBINDVERTEXARRAYAPPLEPROC glad_debug_glBindVertexArrayAPPLE = glad_debug_impl_glBindVertexArrayAPPLE;
PFNGLDELETEVERTEXARRAYSAPPLEPROC glad_glDeleteVertexArraysAPPLE;
void APIENTRY glad_debug_impl_glDeleteVertexArraysAPPLE(GLsizei arg0, const GLuint * arg1) {    
    _pre_call_callback("glDeleteVertexArraysAPPLE", (void*)glDeleteVertexArraysAPPLE, 2, arg0, arg1);
     glad_glDeleteVertexArraysAPPLE(arg0, arg1);
    _post_call_callback("glDeleteVertexArraysAPPLE", (void*)glDeleteVertexArraysAPPLE, 2, arg0, arg1);
    
}
PFNGLDELETEVERTEXARRAYSAPPLEPROC glad_debug_glDeleteVertexArraysAPPLE = glad_debug_impl_glDeleteVertexArraysAPPLE;
PFNGLGENVERTEXARRAYSAPPLEPROC glad_glGenVertexArraysAPPLE;
void APIENTRY glad_debug_impl_glGenVertexArraysAPPLE(GLsizei arg0, GLuint * arg1) {    
    _pre_call_callback("glGenVertexArraysAPPLE", (void*)glGenVertexArraysAPPLE, 2, arg0, arg1);
     glad_glGenVertexArraysAPPLE(arg0, arg1);
    _post_call_callback("glGenVertexArraysAPPLE", (void*)glGenVertexArraysAPPLE, 2, arg0, arg1);
    
}
PFNGLGENVERTEXARRAYSAPPLEPROC glad_debug_glGenVertexArraysAPPLE = glad_debug_impl_glGenVertexArraysAPPLE;
PFNGLISVERTEXARRAYAPPLEPROC glad_glIsVertexArrayAPPLE;
GLboolean APIENTRY glad_debug_impl_glIsVertexArrayAPPLE(GLuint arg0) {    
    GLboolean ret;
    _pre_call_callback("glIsVertexArrayAPPLE", (void*)glIsVertexArrayAPPLE, 1, arg0);
    ret =  glad_glIsVertexArrayAPPLE(arg0);
    _post_call_callback("glIsVertexArrayAPPLE", (void*)glIsVertexArrayAPPLE, 1, arg0);
    return ret;
}
PFNGLISVERTEXARRAYAPPLEPROC glad_debug_glIsVertexArrayAPPLE = glad_debug_impl_glIsVertexArrayAPPLE;
PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer;
GLboolean APIENTRY glad_debug_impl_glIsRenderbuffer(GLuint arg0) {    
    GLboolean ret;
    _pre_call_callback("glIsRenderbuffer", (void*)glIsRenderbuffer, 1, arg0);
    ret =  glad_glIsRenderbuffer(arg0);
    _post_call_callback("glIsRenderbuffer", (void*)glIsRenderbuffer, 1, arg0);
    return ret;
}
PFNGLISRENDERBUFFERPROC glad_debug_glIsRenderbuffer = glad_debug_impl_glIsRenderbuffer;
PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer;
void APIENTRY glad_debug_impl_glBindRenderbuffer(GLenum arg0, GLuint arg1) {    
    _pre_call_callback("glBindRenderbuffer", (void*)glBindRenderbuffer, 2, arg0, arg1);
     glad_glBindRenderbuffer(arg0, arg1);
    _post_call_callback("glBindRenderbuffer", (void*)glBindRenderbuffer, 2, arg0, arg1);
    
}
PFNGLBINDRENDERBUFFERPROC glad_debug_glBindRenderbuffer = glad_debug_impl_glBindRenderbuffer;
PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers;
void APIENTRY glad_debug_impl_glDeleteRenderbuffers(GLsizei arg0, const GLuint * arg1) {    
    _pre_call_callback("glDeleteRenderbuffers", (void*)glDeleteRenderbuffers, 2, arg0, arg1);
     glad_glDeleteRenderbuffers(arg0, arg1);
    _post_call_callback("glDeleteRenderbuffers", (void*)glDeleteRenderbuffers, 2, arg0, arg1);
    
}
PFNGLDELETERENDERBUFFERSPROC glad_debug_glDeleteRenderbuffers = glad_debug_impl_glDeleteRenderbuffers;
PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers;
void APIENTRY glad_debug_impl_glGenRenderbuffers(GLsizei arg0, GLuint * arg1) {    
    _pre_call_callback("glGenRenderbuffers", (void*)glGenRenderbuffers, 2, arg0, arg1);
     glad_glGenRenderbuffers(arg0, arg1);
    _post_call_callback("glGenRenderbuffers", (void*)glGenRenderbuffers, 2, arg0, arg1);
    
}
PFNGLGENRENDERBUFFERSPROC glad_debug_glGenRenderbuffers = glad_debug_impl_glGenRenderbuffers;
PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage;
void APIENTRY glad_debug_impl_glRenderbufferStorage(GLenum arg0, GLenum arg1, GLsizei arg2, GLsizei arg3) {    
    _pre_call_callback("glRenderbufferStorage", (void*)glRenderbufferStorage, 4, arg0, arg1, arg2, arg3);
     glad_glRenderbufferStorage(arg0, arg1, arg2, arg3);
    _post_call_callback("glRenderbufferStorage", (void*)glRenderbufferStorage, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLRENDERBUFFERSTORAGEPROC glad_debug_glRenderbufferStorage = glad_debug_impl_glRenderbufferStorage;
PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv;
void APIENTRY glad_debug_impl_glGetRenderbufferParameteriv(GLenum arg0, GLenum arg1, GLint * arg2) {    
    _pre_call_callback("glGetRenderbufferParameteriv", (void*)glGetRenderbufferParameteriv, 3, arg0, arg1, arg2);
     glad_glGetRenderbufferParameteriv(arg0, arg1, arg2);
    _post_call_callback("glGetRenderbufferParameteriv", (void*)glGetRenderbufferParameteriv, 3, arg0, arg1, arg2);
    
}
PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_debug_glGetRenderbufferParameteriv = glad_debug_impl_glGetRenderbufferParameteriv;
PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer;
GLboolean APIENTRY glad_debug_impl_glIsFramebuffer(GLuint arg0) {    
    GLboolean ret;
    _pre_call_callback("glIsFramebuffer", (void*)glIsFramebuffer, 1, arg0);
    ret =  glad_glIsFramebuffer(arg0);
    _post_call_callback("glIsFramebuffer", (void*)glIsFramebuffer, 1, arg0);
    return ret;
}
PFNGLISFRAMEBUFFERPROC glad_debug_glIsFramebuffer = glad_debug_impl_glIsFramebuffer;
PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer;
void APIENTRY glad_debug_impl_glBindFramebuffer(GLenum arg0, GLuint arg1) {    
    _pre_call_callback("glBindFramebuffer", (void*)glBindFramebuffer, 2, arg0, arg1);
     glad_glBindFramebuffer(arg0, arg1);
    _post_call_callback("glBindFramebuffer", (void*)glBindFramebuffer, 2, arg0, arg1);
    
}
PFNGLBINDFRAMEBUFFERPROC glad_debug_glBindFramebuffer = glad_debug_impl_glBindFramebuffer;
PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers;
void APIENTRY glad_debug_impl_glDeleteFramebuffers(GLsizei arg0, const GLuint * arg1) {    
    _pre_call_callback("glDeleteFramebuffers", (void*)glDeleteFramebuffers, 2, arg0, arg1);
     glad_glDeleteFramebuffers(arg0, arg1);
    _post_call_callback("glDeleteFramebuffers", (void*)glDeleteFramebuffers, 2, arg0, arg1);
    
}
PFNGLDELETEFRAMEBUFFERSPROC glad_debug_glDeleteFramebuffers = glad_debug_impl_glDeleteFramebuffers;
PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers;
void APIENTRY glad_debug_impl_glGenFramebuffers(GLsizei arg0, GLuint * arg1) {    
    _pre_call_callback("glGenFramebuffers", (void*)glGenFramebuffers, 2, arg0, arg1);
     glad_glGenFramebuffers(arg0, arg1);
    _post_call_callback("glGenFramebuffers", (void*)glGenFramebuffers, 2, arg0, arg1);
    
}
PFNGLGENFRAMEBUFFERSPROC glad_debug_glGenFramebuffers = glad_debug_impl_glGenFramebuffers;
PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus;
GLenum APIENTRY glad_debug_impl_glCheckFramebufferStatus(GLenum arg0) {    
    GLenum ret;
    _pre_call_callback("glCheckFramebufferStatus", (void*)glCheckFramebufferStatus, 1, arg0);
    ret =  glad_glCheckFramebufferStatus(arg0);
    _post_call_callback("glCheckFramebufferStatus", (void*)glCheckFramebufferStatus, 1, arg0);
    return ret;
}
PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_debug_glCheckFramebufferStatus = glad_debug_impl_glCheckFramebufferStatus;
PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D;
void APIENTRY glad_debug_impl_glFramebufferTexture1D(GLenum arg0, GLenum arg1, GLenum arg2, GLuint arg3, GLint arg4) {    
    _pre_call_callback("glFramebufferTexture1D", (void*)glFramebufferTexture1D, 5, arg0, arg1, arg2, arg3, arg4);
     glad_glFramebufferTexture1D(arg0, arg1, arg2, arg3, arg4);
    _post_call_callback("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("glFramebufferTexture2D", (void*)glFramebufferTexture2D, 5, arg0, arg1, arg2, arg3, arg4);
     glad_glFramebufferTexture2D(arg0, arg1, arg2, arg3, arg4);
    _post_call_callback("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("glFramebufferTexture3D", (void*)glFramebufferTexture3D, 6, arg0, arg1, arg2, arg3, arg4, arg5);
     glad_glFramebufferTexture3D(arg0, arg1, arg2, arg3, arg4, arg5);
    _post_call_callback("glFramebufferTexture3D", (void*)glFramebufferTexture3D, 6, arg0, arg1, arg2, arg3, arg4, arg5);
    
}
PFNGLFRAMEBUFFERTEXTURE3DPROC glad_debug_glFramebufferTexture3D = glad_debug_impl_glFramebufferTexture3D;
PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer;
void APIENTRY glad_debug_impl_glFramebufferRenderbuffer(GLenum arg0, GLenum arg1, GLenum arg2, GLuint arg3) {    
    _pre_call_callback("glFramebufferRenderbuffer", (void*)glFramebufferRenderbuffer, 4, arg0, arg1, arg2, arg3);
     glad_glFramebufferRenderbuffer(arg0, arg1, arg2, arg3);
    _post_call_callback("glFramebufferRenderbuffer", (void*)glFramebufferRenderbuffer, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_debug_glFramebufferRenderbuffer = glad_debug_impl_glFramebufferRenderbuffer;
PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv;
void APIENTRY glad_debug_impl_glGetFramebufferAttachmentParameteriv(GLenum arg0, GLenum arg1, GLenum arg2, GLint * arg3) {    
    _pre_call_callback("glGetFramebufferAttachmentParameteriv", (void*)glGetFramebufferAttachmentParameteriv, 4, arg0, arg1, arg2, arg3);
     glad_glGetFramebufferAttachmentParameteriv(arg0, arg1, arg2, arg3);
    _post_call_callback("glGetFramebufferAttachmentParameteriv", (void*)glGetFramebufferAttachmentParameteriv, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_debug_glGetFramebufferAttachmentParameteriv = glad_debug_impl_glGetFramebufferAttachmentParameteriv;
PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap;
void APIENTRY glad_debug_impl_glGenerateMipmap(GLenum arg0) {    
    _pre_call_callback("glGenerateMipmap", (void*)glGenerateMipmap, 1, arg0);
     glad_glGenerateMipmap(arg0);
    _post_call_callback("glGenerateMipmap", (void*)glGenerateMipmap, 1, arg0);
    
}
PFNGLGENERATEMIPMAPPROC glad_debug_glGenerateMipmap = glad_debug_impl_glGenerateMipmap;
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("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("glBlitFramebuffer", (void*)glBlitFramebuffer, 10, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
    
}
PFNGLBLITFRAMEBUFFERPROC glad_debug_glBlitFramebuffer = glad_debug_impl_glBlitFramebuffer;
PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample;
void APIENTRY glad_debug_impl_glRenderbufferStorageMultisample(GLenum arg0, GLsizei arg1, GLenum arg2, GLsizei arg3, GLsizei arg4) {    
    _pre_call_callback("glRenderbufferStorageMultisample", (void*)glRenderbufferStorageMultisample, 5, arg0, arg1, arg2, arg3, arg4);
     glad_glRenderbufferStorageMultisample(arg0, arg1, arg2, arg3, arg4);
    _post_call_callback("glRenderbufferStorageMultisample", (void*)glRenderbufferStorageMultisample, 5, arg0, arg1, arg2, arg3, arg4);
    
}
PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_debug_glRenderbufferStorageMultisample = glad_debug_impl_glRenderbufferStorageMultisample;
PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer;
void APIENTRY glad_debug_impl_glFramebufferTextureLayer(GLenum arg0, GLenum arg1, GLuint arg2, GLint arg3, GLint arg4) {    
    _pre_call_callback("glFramebufferTextureLayer", (void*)glFramebufferTextureLayer, 5, arg0, arg1, arg2, arg3, arg4);
     glad_glFramebufferTextureLayer(arg0, arg1, arg2, arg3, arg4);
    _post_call_callback("glFramebufferTextureLayer", (void*)glFramebufferTextureLayer, 5, arg0, arg1, arg2, arg3, arg4);
    
}
PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_debug_glFramebufferTextureLayer = glad_debug_impl_glFramebufferTextureLayer;
PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray;
void APIENTRY glad_debug_impl_glBindVertexArray(GLuint arg0) {    
    _pre_call_callback("glBindVertexArray", (void*)glBindVertexArray, 1, arg0);
     glad_glBindVertexArray(arg0);
    _post_call_callback("glBindVertexArray", (void*)glBindVertexArray, 1, arg0);
    
}
PFNGLBINDVERTEXARRAYPROC glad_debug_glBindVertexArray = glad_debug_impl_glBindVertexArray;
PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays;
void APIENTRY glad_debug_impl_glDeleteVertexArrays(GLsizei arg0, const GLuint * arg1) {    
    _pre_call_callback("glDeleteVertexArrays", (void*)glDeleteVertexArrays, 2, arg0, arg1);
     glad_glDeleteVertexArrays(arg0, arg1);
    _post_call_callback("glDeleteVertexArrays", (void*)glDeleteVertexArrays, 2, arg0, arg1);
    
}
PFNGLDELETEVERTEXARRAYSPROC glad_debug_glDeleteVertexArrays = glad_debug_impl_glDeleteVertexArrays;
PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays;
void APIENTRY glad_debug_impl_glGenVertexArrays(GLsizei arg0, GLuint * arg1) {    
    _pre_call_callback("glGenVertexArrays", (void*)glGenVertexArrays, 2, arg0, arg1);
     glad_glGenVertexArrays(arg0, arg1);
    _post_call_callback("glGenVertexArrays", (void*)glGenVertexArrays, 2, arg0, arg1);
    
}
PFNGLGENVERTEXARRAYSPROC glad_debug_glGenVertexArrays = glad_debug_impl_glGenVertexArrays;
PFNGLISVERTEXARRAYPROC glad_glIsVertexArray;
GLboolean APIENTRY glad_debug_impl_glIsVertexArray(GLuint arg0) {    
    GLboolean ret;
    _pre_call_callback("glIsVertexArray", (void*)glIsVertexArray, 1, arg0);
    ret =  glad_glIsVertexArray(arg0);
    _post_call_callback("glIsVertexArray", (void*)glIsVertexArray, 1, arg0);
    return ret;
}
PFNGLISVERTEXARRAYPROC glad_debug_glIsVertexArray = glad_debug_impl_glIsVertexArray;
PFNGLBINDBUFFERARBPROC glad_glBindBufferARB;
void APIENTRY glad_debug_impl_glBindBufferARB(GLenum arg0, GLuint arg1) {    
    _pre_call_callback("glBindBufferARB", (void*)glBindBufferARB, 2, arg0, arg1);
     glad_glBindBufferARB(arg0, arg1);
    _post_call_callback("glBindBufferARB", (void*)glBindBufferARB, 2, arg0, arg1);
    
}
PFNGLBINDBUFFERARBPROC glad_debug_glBindBufferARB = glad_debug_impl_glBindBufferARB;
PFNGLDELETEBUFFERSARBPROC glad_glDeleteBuffersARB;
void APIENTRY glad_debug_impl_glDeleteBuffersARB(GLsizei arg0, const GLuint * arg1) {    
    _pre_call_callback("glDeleteBuffersARB", (void*)glDeleteBuffersARB, 2, arg0, arg1);
     glad_glDeleteBuffersARB(arg0, arg1);
    _post_call_callback("glDeleteBuffersARB", (void*)glDeleteBuffersARB, 2, arg0, arg1);
    
}
PFNGLDELETEBUFFERSARBPROC glad_debug_glDeleteBuffersARB = glad_debug_impl_glDeleteBuffersARB;
PFNGLGENBUFFERSARBPROC glad_glGenBuffersARB;
void APIENTRY glad_debug_impl_glGenBuffersARB(GLsizei arg0, GLuint * arg1) {    
    _pre_call_callback("glGenBuffersARB", (void*)glGenBuffersARB, 2, arg0, arg1);
     glad_glGenBuffersARB(arg0, arg1);
    _post_call_callback("glGenBuffersARB", (void*)glGenBuffersARB, 2, arg0, arg1);
    
}
PFNGLGENBUFFERSARBPROC glad_debug_glGenBuffersARB = glad_debug_impl_glGenBuffersARB;
PFNGLISBUFFERARBPROC glad_glIsBufferARB;
GLboolean APIENTRY glad_debug_impl_glIsBufferARB(GLuint arg0) {    
    GLboolean ret;
    _pre_call_callback("glIsBufferARB", (void*)glIsBufferARB, 1, arg0);
    ret =  glad_glIsBufferARB(arg0);
    _post_call_callback("glIsBufferARB", (void*)glIsBufferARB, 1, arg0);
    return ret;
}
PFNGLISBUFFERARBPROC glad_debug_glIsBufferARB = glad_debug_impl_glIsBufferARB;
PFNGLBUFFERDATAARBPROC glad_glBufferDataARB;
void APIENTRY glad_debug_impl_glBufferDataARB(GLenum arg0, GLsizeiptrARB arg1, const void * arg2, GLenum arg3) {    
    _pre_call_callback("glBufferDataARB", (void*)glBufferDataARB, 4, arg0, arg1, arg2, arg3);
     glad_glBufferDataARB(arg0, arg1, arg2, arg3);
    _post_call_callback("glBufferDataARB", (void*)glBufferDataARB, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLBUFFERDATAARBPROC glad_debug_glBufferDataARB = glad_debug_impl_glBufferDataARB;
PFNGLBUFFERSUBDATAARBPROC glad_glBufferSubDataARB;
void APIENTRY glad_debug_impl_glBufferSubDataARB(GLenum arg0, GLintptrARB arg1, GLsizeiptrARB arg2, const void * arg3) {    
    _pre_call_callback("glBufferSubDataARB", (void*)glBufferSubDataARB, 4, arg0, arg1, arg2, arg3);
     glad_glBufferSubDataARB(arg0, arg1, arg2, arg3);
    _post_call_callback("glBufferSubDataARB", (void*)glBufferSubDataARB, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLBUFFERSUBDATAARBPROC glad_debug_glBufferSubDataARB = glad_debug_impl_glBufferSubDataARB;
PFNGLGETBUFFERSUBDATAARBPROC glad_glGetBufferSubDataARB;
void APIENTRY glad_debug_impl_glGetBufferSubDataARB(GLenum arg0, GLintptrARB arg1, GLsizeiptrARB arg2, void * arg3) {    
    _pre_call_callback("glGetBufferSubDataARB", (void*)glGetBufferSubDataARB, 4, arg0, arg1, arg2, arg3);
     glad_glGetBufferSubDataARB(arg0, arg1, arg2, arg3);
    _post_call_callback("glGetBufferSubDataARB", (void*)glGetBufferSubDataARB, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLGETBUFFERSUBDATAARBPROC glad_debug_glGetBufferSubDataARB = glad_debug_impl_glGetBufferSubDataARB;
PFNGLMAPBUFFERARBPROC glad_glMapBufferARB;
void * APIENTRY glad_debug_impl_glMapBufferARB(GLenum arg0, GLenum arg1) {    
    void * ret;
    _pre_call_callback("glMapBufferARB", (void*)glMapBufferARB, 2, arg0, arg1);
    ret =  glad_glMapBufferARB(arg0, arg1);
    _post_call_callback("glMapBufferARB", (void*)glMapBufferARB, 2, arg0, arg1);
    return ret;
}
PFNGLMAPBUFFERARBPROC glad_debug_glMapBufferARB = glad_debug_impl_glMapBufferARB;
PFNGLUNMAPBUFFERARBPROC glad_glUnmapBufferARB;
GLboolean APIENTRY glad_debug_impl_glUnmapBufferARB(GLenum arg0) {    
    GLboolean ret;
    _pre_call_callback("glUnmapBufferARB", (void*)glUnmapBufferARB, 1, arg0);
    ret =  glad_glUnmapBufferARB(arg0);
    _post_call_callback("glUnmapBufferARB", (void*)glUnmapBufferARB, 1, arg0);
    return ret;
}
PFNGLUNMAPBUFFERARBPROC glad_debug_glUnmapBufferARB = glad_debug_impl_glUnmapBufferARB;
PFNGLGETBUFFERPARAMETERIVARBPROC glad_glGetBufferParameterivARB;
void APIENTRY glad_debug_impl_glGetBufferParameterivARB(GLenum arg0, GLenum arg1, GLint * arg2) {    
    _pre_call_callback("glGetBufferParameterivARB", (void*)glGetBufferParameterivARB, 3, arg0, arg1, arg2);
     glad_glGetBufferParameterivARB(arg0, arg1, arg2);
    _post_call_callback("glGetBufferParameterivARB", (void*)glGetBufferParameterivARB, 3, arg0, arg1, arg2);
    
}
PFNGLGETBUFFERPARAMETERIVARBPROC glad_debug_glGetBufferParameterivARB = glad_debug_impl_glGetBufferParameterivARB;
PFNGLGETBUFFERPOINTERVARBPROC glad_glGetBufferPointervARB;
void APIENTRY glad_debug_impl_glGetBufferPointervARB(GLenum arg0, GLenum arg1, void ** arg2) {    
    _pre_call_callback("glGetBufferPointervARB", (void*)glGetBufferPointervARB, 3, arg0, arg1, arg2);
     glad_glGetBufferPointervARB(arg0, arg1, arg2);
    _post_call_callback("glGetBufferPointervARB", (void*)glGetBufferPointervARB, 3, arg0, arg1, arg2);
    
}
PFNGLGETBUFFERPOINTERVARBPROC glad_debug_glGetBufferPointervARB = glad_debug_impl_glGetBufferPointervARB;
PFNGLISRENDERBUFFEREXTPROC glad_glIsRenderbufferEXT;
GLboolean APIENTRY glad_debug_impl_glIsRenderbufferEXT(GLuint arg0) {    
    GLboolean ret;
    _pre_call_callback("glIsRenderbufferEXT", (void*)glIsRenderbufferEXT, 1, arg0);
    ret =  glad_glIsRenderbufferEXT(arg0);
    _post_call_callback("glIsRenderbufferEXT", (void*)glIsRenderbufferEXT, 1, arg0);
    return ret;
}
PFNGLISRENDERBUFFEREXTPROC glad_debug_glIsRenderbufferEXT = glad_debug_impl_glIsRenderbufferEXT;
PFNGLBINDRENDERBUFFEREXTPROC glad_glBindRenderbufferEXT;
void APIENTRY glad_debug_impl_glBindRenderbufferEXT(GLenum arg0, GLuint arg1) {    
    _pre_call_callback("glBindRenderbufferEXT", (void*)glBindRenderbufferEXT, 2, arg0, arg1);
     glad_glBindRenderbufferEXT(arg0, arg1);
    _post_call_callback("glBindRenderbufferEXT", (void*)glBindRenderbufferEXT, 2, arg0, arg1);
    
}
PFNGLBINDRENDERBUFFEREXTPROC glad_debug_glBindRenderbufferEXT = glad_debug_impl_glBindRenderbufferEXT;
PFNGLDELETERENDERBUFFERSEXTPROC glad_glDeleteRenderbuffersEXT;
void APIENTRY glad_debug_impl_glDeleteRenderbuffersEXT(GLsizei arg0, const GLuint * arg1) {    
    _pre_call_callback("glDeleteRenderbuffersEXT", (void*)glDeleteRenderbuffersEXT, 2, arg0, arg1);
     glad_glDeleteRenderbuffersEXT(arg0, arg1);
    _post_call_callback("glDeleteRenderbuffersEXT", (void*)glDeleteRenderbuffersEXT, 2, arg0, arg1);
    
}
PFNGLDELETERENDERBUFFERSEXTPROC glad_debug_glDeleteRenderbuffersEXT = glad_debug_impl_glDeleteRenderbuffersEXT;
PFNGLGENRENDERBUFFERSEXTPROC glad_glGenRenderbuffersEXT;
void APIENTRY glad_debug_impl_glGenRenderbuffersEXT(GLsizei arg0, GLuint * arg1) {    
    _pre_call_callback("glGenRenderbuffersEXT", (void*)glGenRenderbuffersEXT, 2, arg0, arg1);
     glad_glGenRenderbuffersEXT(arg0, arg1);
    _post_call_callback("glGenRenderbuffersEXT", (void*)glGenRenderbuffersEXT, 2, arg0, arg1);
    
}
PFNGLGENRENDERBUFFERSEXTPROC glad_debug_glGenRenderbuffersEXT = glad_debug_impl_glGenRenderbuffersEXT;
PFNGLRENDERBUFFERSTORAGEEXTPROC glad_glRenderbufferStorageEXT;
void APIENTRY glad_debug_impl_glRenderbufferStorageEXT(GLenum arg0, GLenum arg1, GLsizei arg2, GLsizei arg3) {    
    _pre_call_callback("glRenderbufferStorageEXT", (void*)glRenderbufferStorageEXT, 4, arg0, arg1, arg2, arg3);
     glad_glRenderbufferStorageEXT(arg0, arg1, arg2, arg3);
    _post_call_callback("glRenderbufferStorageEXT", (void*)glRenderbufferStorageEXT, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLRENDERBUFFERSTORAGEEXTPROC glad_debug_glRenderbufferStorageEXT = glad_debug_impl_glRenderbufferStorageEXT;
PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC glad_glGetRenderbufferParameterivEXT;
void APIENTRY glad_debug_impl_glGetRenderbufferParameterivEXT(GLenum arg0, GLenum arg1, GLint * arg2) {    
    _pre_call_callback("glGetRenderbufferParameterivEXT", (void*)glGetRenderbufferParameterivEXT, 3, arg0, arg1, arg2);
     glad_glGetRenderbufferParameterivEXT(arg0, arg1, arg2);
    _post_call_callback("glGetRenderbufferParameterivEXT", (void*)glGetRenderbufferParameterivEXT, 3, arg0, arg1, arg2);
    
}
PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC glad_debug_glGetRenderbufferParameterivEXT = glad_debug_impl_glGetRenderbufferParameterivEXT;
PFNGLISFRAMEBUFFEREXTPROC glad_glIsFramebufferEXT;
GLboolean APIENTRY glad_debug_impl_glIsFramebufferEXT(GLuint arg0) {    
    GLboolean ret;
    _pre_call_callback("glIsFramebufferEXT", (void*)glIsFramebufferEXT, 1, arg0);
    ret =  glad_glIsFramebufferEXT(arg0);
    _post_call_callback("glIsFramebufferEXT", (void*)glIsFramebufferEXT, 1, arg0);
    return ret;
}
PFNGLISFRAMEBUFFEREXTPROC glad_debug_glIsFramebufferEXT = glad_debug_impl_glIsFramebufferEXT;
PFNGLBINDFRAMEBUFFEREXTPROC glad_glBindFramebufferEXT;
void APIENTRY glad_debug_impl_glBindFramebufferEXT(GLenum arg0, GLuint arg1) {    
    _pre_call_callback("glBindFramebufferEXT", (void*)glBindFramebufferEXT, 2, arg0, arg1);
     glad_glBindFramebufferEXT(arg0, arg1);
    _post_call_callback("glBindFramebufferEXT", (void*)glBindFramebufferEXT, 2, arg0, arg1);
    
}
PFNGLBINDFRAMEBUFFEREXTPROC glad_debug_glBindFramebufferEXT = glad_debug_impl_glBindFramebufferEXT;
PFNGLDELETEFRAMEBUFFERSEXTPROC glad_glDeleteFramebuffersEXT;
void APIENTRY glad_debug_impl_glDeleteFramebuffersEXT(GLsizei arg0, const GLuint * arg1) {    
    _pre_call_callback("glDeleteFramebuffersEXT", (void*)glDeleteFramebuffersEXT, 2, arg0, arg1);
     glad_glDeleteFramebuffersEXT(arg0, arg1);
    _post_call_callback("glDeleteFramebuffersEXT", (void*)glDeleteFramebuffersEXT, 2, arg0, arg1);
    
}
PFNGLDELETEFRAMEBUFFERSEXTPROC glad_debug_glDeleteFramebuffersEXT = glad_debug_impl_glDeleteFramebuffersEXT;
PFNGLGENFRAMEBUFFERSEXTPROC glad_glGenFramebuffersEXT;
void APIENTRY glad_debug_impl_glGenFramebuffersEXT(GLsizei arg0, GLuint * arg1) {    
    _pre_call_callback("glGenFramebuffersEXT", (void*)glGenFramebuffersEXT, 2, arg0, arg1);
     glad_glGenFramebuffersEXT(arg0, arg1);
    _post_call_callback("glGenFramebuffersEXT", (void*)glGenFramebuffersEXT, 2, arg0, arg1);
    
}
PFNGLGENFRAMEBUFFERSEXTPROC glad_debug_glGenFramebuffersEXT = glad_debug_impl_glGenFramebuffersEXT;
PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glad_glCheckFramebufferStatusEXT;
GLenum APIENTRY glad_debug_impl_glCheckFramebufferStatusEXT(GLenum arg0) {    
    GLenum ret;
    _pre_call_callback("glCheckFramebufferStatusEXT", (void*)glCheckFramebufferStatusEXT, 1, arg0);
    ret =  glad_glCheckFramebufferStatusEXT(arg0);
    _post_call_callback("glCheckFramebufferStatusEXT", (void*)glCheckFramebufferStatusEXT, 1, arg0);
    return ret;
}
PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glad_debug_glCheckFramebufferStatusEXT = glad_debug_impl_glCheckFramebufferStatusEXT;
PFNGLFRAMEBUFFERTEXTURE1DEXTPROC glad_glFramebufferTexture1DEXT;
void APIENTRY glad_debug_impl_glFramebufferTexture1DEXT(GLenum arg0, GLenum arg1, GLenum arg2, GLuint arg3, GLint arg4) {    
    _pre_call_callback("glFramebufferTexture1DEXT", (void*)glFramebufferTexture1DEXT, 5, arg0, arg1, arg2, arg3, arg4);
     glad_glFramebufferTexture1DEXT(arg0, arg1, arg2, arg3, arg4);
    _post_call_callback("glFramebufferTexture1DEXT", (void*)glFramebufferTexture1DEXT, 5, arg0, arg1, arg2, arg3, arg4);
    
}
PFNGLFRAMEBUFFERTEXTURE1DEXTPROC glad_debug_glFramebufferTexture1DEXT = glad_debug_impl_glFramebufferTexture1DEXT;
PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glad_glFramebufferTexture2DEXT;
void APIENTRY glad_debug_impl_glFramebufferTexture2DEXT(GLenum arg0, GLenum arg1, GLenum arg2, GLuint arg3, GLint arg4) {    
    _pre_call_callback("glFramebufferTexture2DEXT", (void*)glFramebufferTexture2DEXT, 5, arg0, arg1, arg2, arg3, arg4);
     glad_glFramebufferTexture2DEXT(arg0, arg1, arg2, arg3, arg4);
    _post_call_callback("glFramebufferTexture2DEXT", (void*)glFramebufferTexture2DEXT, 5, arg0, arg1, arg2, arg3, arg4);
    
}
PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glad_debug_glFramebufferTexture2DEXT = glad_debug_impl_glFramebufferTexture2DEXT;
PFNGLFRAMEBUFFERTEXTURE3DEXTPROC glad_glFramebufferTexture3DEXT;
void APIENTRY glad_debug_impl_glFramebufferTexture3DEXT(GLenum arg0, GLenum arg1, GLenum arg2, GLuint arg3, GLint arg4, GLint arg5) {    
    _pre_call_callback("glFramebufferTexture3DEXT", (void*)glFramebufferTexture3DEXT, 6, arg0, arg1, arg2, arg3, arg4, arg5);
     glad_glFramebufferTexture3DEXT(arg0, arg1, arg2, arg3, arg4, arg5);
    _post_call_callback("glFramebufferTexture3DEXT", (void*)glFramebufferTexture3DEXT, 6, arg0, arg1, arg2, arg3, arg4, arg5);
    
}
PFNGLFRAMEBUFFERTEXTURE3DEXTPROC glad_debug_glFramebufferTexture3DEXT = glad_debug_impl_glFramebufferTexture3DEXT;
PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glad_glFramebufferRenderbufferEXT;
void APIENTRY glad_debug_impl_glFramebufferRenderbufferEXT(GLenum arg0, GLenum arg1, GLenum arg2, GLuint arg3) {    
    _pre_call_callback("glFramebufferRenderbufferEXT", (void*)glFramebufferRenderbufferEXT, 4, arg0, arg1, arg2, arg3);
     glad_glFramebufferRenderbufferEXT(arg0, arg1, arg2, arg3);
    _post_call_callback("glFramebufferRenderbufferEXT", (void*)glFramebufferRenderbufferEXT, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glad_debug_glFramebufferRenderbufferEXT = glad_debug_impl_glFramebufferRenderbufferEXT;
PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glad_glGetFramebufferAttachmentParameterivEXT;
void APIENTRY glad_debug_impl_glGetFramebufferAttachmentParameterivEXT(GLenum arg0, GLenum arg1, GLenum arg2, GLint * arg3) {    
    _pre_call_callback("glGetFramebufferAttachmentParameterivEXT", (void*)glGetFramebufferAttachmentParameterivEXT, 4, arg0, arg1, arg2, arg3);
     glad_glGetFramebufferAttachmentParameterivEXT(arg0, arg1, arg2, arg3);
    _post_call_callback("glGetFramebufferAttachmentParameterivEXT", (void*)glGetFramebufferAttachmentParameterivEXT, 4, arg0, arg1, arg2, arg3);
    
}
PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glad_debug_glGetFramebufferAttachmentParameterivEXT = glad_debug_impl_glGetFramebufferAttachmentParameterivEXT;
PFNGLGENERATEMIPMAPEXTPROC glad_glGenerateMipmapEXT;
void APIENTRY glad_debug_impl_glGenerateMipmapEXT(GLenum arg0) {    
    _pre_call_callback("glGenerateMipmapEXT", (void*)glGenerateMipmapEXT, 1, arg0);
     glad_glGenerateMipmapEXT(arg0);
    _post_call_callback("glGenerateMipmapEXT", (void*)glGenerateMipmapEXT, 1, arg0);
    
}
PFNGLGENERATEMIPMAPEXTPROC glad_debug_glGenerateMipmapEXT = glad_debug_impl_glGenerateMipmapEXT;
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_APPLE_vertex_array_object(GLADloadproc load) {
	if(!GLAD_GL_APPLE_vertex_array_object) return;
	glad_glBindVertexArrayAPPLE = (PFNGLBINDVERTEXARRAYAPPLEPROC)load("glBindVertexArrayAPPLE");
	glad_glDeleteVertexArraysAPPLE = (PFNGLDELETEVERTEXARRAYSAPPLEPROC)load("glDeleteVertexArraysAPPLE");
	glad_glGenVertexArraysAPPLE = (PFNGLGENVERTEXARRAYSAPPLEPROC)load("glGenVertexArraysAPPLE");
	glad_glIsVertexArrayAPPLE = (PFNGLISVERTEXARRAYAPPLEPROC)load("glIsVertexArrayAPPLE");
}
static void load_GL_ARB_framebuffer_object(GLADloadproc load) {
	if(!GLAD_GL_ARB_framebuffer_object) return;
	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");
}
static void load_GL_ARB_vertex_array_object(GLADloadproc load) {
	if(!GLAD_GL_ARB_vertex_array_object) return;
	glad_glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC)load("glBindVertexArray");
	glad_glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC)load("glDeleteVertexArrays");
	glad_glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC)load("glGenVertexArrays");
	glad_glIsVertexArray = (PFNGLISVERTEXARRAYPROC)load("glIsVertexArray");
}
static void load_GL_ARB_vertex_buffer_object(GLADloadproc load) {
	if(!GLAD_GL_ARB_vertex_buffer_object) return;
	glad_glBindBufferARB = (PFNGLBINDBUFFERARBPROC)load("glBindBufferARB");
	glad_glDeleteBuffersARB = (PFNGLDELETEBUFFERSARBPROC)load("glDeleteBuffersARB");
	glad_glGenBuffersARB = (PFNGLGENBUFFERSARBPROC)load("glGenBuffersARB");
	glad_glIsBufferARB = (PFNGLISBUFFERARBPROC)load("glIsBufferARB");
	glad_glBufferDataARB = (PFNGLBUFFERDATAARBPROC)load("glBufferDataARB");
	glad_glBufferSubDataARB = (PFNGLBUFFERSUBDATAARBPROC)load("glBufferSubDataARB");
	glad_glGetBufferSubDataARB = (PFNGLGETBUFFERSUBDATAARBPROC)load("glGetBufferSubDataARB");
	glad_glMapBufferARB = (PFNGLMAPBUFFERARBPROC)load("glMapBufferARB");
	glad_glUnmapBufferARB = (PFNGLUNMAPBUFFERARBPROC)load("glUnmapBufferARB");
	glad_glGetBufferParameterivARB = (PFNGLGETBUFFERPARAMETERIVARBPROC)load("glGetBufferParameterivARB");
	glad_glGetBufferPointervARB = (PFNGLGETBUFFERPOINTERVARBPROC)load("glGetBufferPointervARB");
}
static void load_GL_EXT_framebuffer_object(GLADloadproc load) {
	if(!GLAD_GL_EXT_framebuffer_object) return;
	glad_glIsRenderbufferEXT = (PFNGLISRENDERBUFFEREXTPROC)load("glIsRenderbufferEXT");
	glad_glBindRenderbufferEXT = (PFNGLBINDRENDERBUFFEREXTPROC)load("glBindRenderbufferEXT");
	glad_glDeleteRenderbuffersEXT = (PFNGLDELETERENDERBUFFERSEXTPROC)load("glDeleteRenderbuffersEXT");
	glad_glGenRenderbuffersEXT = (PFNGLGENRENDERBUFFERSEXTPROC)load("glGenRenderbuffersEXT");
	glad_glRenderbufferStorageEXT = (PFNGLRENDERBUFFERSTORAGEEXTPROC)load("glRenderbufferStorageEXT");
	glad_glGetRenderbufferParameterivEXT = (PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC)load("glGetRenderbufferParameterivEXT");
	glad_glIsFramebufferEXT = (PFNGLISFRAMEBUFFEREXTPROC)load("glIsFramebufferEXT");
	glad_glBindFramebufferEXT = (PFNGLBINDFRAMEBUFFEREXTPROC)load("glBindFramebufferEXT");
	glad_glDeleteFramebuffersEXT = (PFNGLDELETEFRAMEBUFFERSEXTPROC)load("glDeleteFramebuffersEXT");
	glad_glGenFramebuffersEXT = (PFNGLGENFRAMEBUFFERSEXTPROC)load("glGenFramebuffersEXT");
	glad_glCheckFramebufferStatusEXT = (PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)load("glCheckFramebufferStatusEXT");
	glad_glFramebufferTexture1DEXT = (PFNGLFRAMEBUFFERTEXTURE1DEXTPROC)load("glFramebufferTexture1DEXT");
	glad_glFramebufferTexture2DEXT = (PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)load("glFramebufferTexture2DEXT");
	glad_glFramebufferTexture3DEXT = (PFNGLFRAMEBUFFERTEXTURE3DEXTPROC)load("glFramebufferTexture3DEXT");
	glad_glFramebufferRenderbufferEXT = (PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC)load("glFramebufferRenderbufferEXT");
	glad_glGetFramebufferAttachmentParameterivEXT = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)load("glGetFramebufferAttachmentParameterivEXT");
	glad_glGenerateMipmapEXT = (PFNGLGENERATEMIPMAPEXTPROC)load("glGenerateMipmapEXT");
}
static int find_extensionsGL(void) {
	if (!get_exts()) return 0;
	GLAD_GL_APPLE_vertex_array_object = has_ext("GL_APPLE_vertex_array_object");
	GLAD_GL_ARB_framebuffer_object = has_ext("GL_ARB_framebuffer_object");
	GLAD_GL_ARB_pixel_buffer_object = has_ext("GL_ARB_pixel_buffer_object");
	GLAD_GL_ARB_texture_float = has_ext("GL_ARB_texture_float");
	GLAD_GL_ARB_vertex_array_object = has_ext("GL_ARB_vertex_array_object");
	GLAD_GL_ARB_vertex_buffer_object = has_ext("GL_ARB_vertex_buffer_object");
	GLAD_GL_EXT_framebuffer_object = has_ext("GL_EXT_framebuffer_object");
	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;
	if (GLVersion.major > 2 || (GLVersion.major >= 2 && GLVersion.minor >= 0)) {
		max_loaded_major = 2;
		max_loaded_minor = 0;
	}
}

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);

	if (!find_extensionsGL()) return 0;
	load_GL_APPLE_vertex_array_object(load);
	load_GL_ARB_framebuffer_object(load);
	load_GL_ARB_vertex_array_object(load);
	load_GL_ARB_vertex_buffer_object(load);
	load_GL_EXT_framebuffer_object(load);
	return GLVersion.major != 0 || GLVersion.minor != 0;
}

