void API_ENTRY(glActiveTexture)(GLenum texture) {
    CALL_GL_API(glActiveTexture, texture);
}
void API_ENTRY(glAttachShader)(GLuint program, GLuint shader) {
    CALL_GL_API(glAttachShader, program, shader);
}
void API_ENTRY(glBindAttribLocation)(GLuint program, GLuint index, const GLchar* name) {
    CALL_GL_API(glBindAttribLocation, program, index, name);
}
void API_ENTRY(glBindBuffer)(GLenum target, GLuint buffer) {
    CALL_GL_API(glBindBuffer, target, buffer);
}
void API_ENTRY(glBindFramebuffer)(GLenum target, GLuint framebuffer) {
    CALL_GL_API(glBindFramebuffer, target, framebuffer);
}
void API_ENTRY(glBindRenderbuffer)(GLenum target, GLuint renderbuffer) {
    CALL_GL_API(glBindRenderbuffer, target, renderbuffer);
}
void API_ENTRY(glBindTexture)(GLenum target, GLuint texture) {
    CALL_GL_API(glBindTexture, target, texture);
}
void API_ENTRY(glBlendColor)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) {
    CALL_GL_API(glBlendColor, red, green, blue, alpha);
}
void API_ENTRY(glBlendEquation)(GLenum mode) {
    CALL_GL_API(glBlendEquation, mode);
}
void API_ENTRY(glBlendEquationSeparate)(GLenum modeRGB, GLenum modeAlpha) {
    CALL_GL_API(glBlendEquationSeparate, modeRGB, modeAlpha);
}
void API_ENTRY(glBlendFunc)(GLenum sfactor, GLenum dfactor) {
    CALL_GL_API(glBlendFunc, sfactor, dfactor);
}
void API_ENTRY(glBlendFuncSeparate)(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) {
    CALL_GL_API(glBlendFuncSeparate, srcRGB, dstRGB, srcAlpha, dstAlpha);
}
void API_ENTRY(glBufferData)(GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage) {
    CALL_GL_API(glBufferData, target, size, data, usage);
}
void API_ENTRY(glBufferSubData)(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data) {
    CALL_GL_API(glBufferSubData, target, offset, size, data);
}
GLenum API_ENTRY(glCheckFramebufferStatus)(GLenum target) {
    CALL_GL_API_RETURN(glCheckFramebufferStatus, target);
}
void API_ENTRY(glClear)(GLbitfield mask) {
    CALL_GL_API(glClear, mask);
}
void API_ENTRY(glClearColor)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) {
    CALL_GL_API(glClearColor, red, green, blue, alpha);
}
void API_ENTRY(glClearDepthf)(GLfloat depth) {
    CALL_GL_API(glClearDepthf, depth);
}
void API_ENTRY(glClearStencil)(GLint s) {
    CALL_GL_API(glClearStencil, s);
}
void API_ENTRY(glColorMask)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) {
    CALL_GL_API(glColorMask, red, green, blue, alpha);
}
void API_ENTRY(glCompileShader)(GLuint shader) {
    CALL_GL_API(glCompileShader, shader);
}
void API_ENTRY(glCompressedTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data) {
    CALL_GL_API(glCompressedTexImage2D, target, level, internalformat, width, height, border, imageSize, data);
}
void API_ENTRY(glCompressedTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data) {
    CALL_GL_API(glCompressedTexSubImage2D, target, level, xoffset, yoffset, width, height, format, imageSize, data);
}
void API_ENTRY(glCopyTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) {
    CALL_GL_API(glCopyTexImage2D, target, level, internalformat, x, y, width, height, border);
}
void API_ENTRY(glCopyTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
    CALL_GL_API(glCopyTexSubImage2D, target, level, xoffset, yoffset, x, y, width, height);
}
GLuint API_ENTRY(glCreateProgram)(void) {
    CALL_GL_API_RETURN(glCreateProgram);
}
GLuint API_ENTRY(glCreateShader)(GLenum type) {
    CALL_GL_API_RETURN(glCreateShader, type);
}
void API_ENTRY(glCullFace)(GLenum mode) {
    CALL_GL_API(glCullFace, mode);
}
void API_ENTRY(glDeleteBuffers)(GLsizei n, const GLuint* buffers) {
    CALL_GL_API(glDeleteBuffers, n, buffers);
}
void API_ENTRY(glDeleteFramebuffers)(GLsizei n, const GLuint* framebuffers) {
    CALL_GL_API(glDeleteFramebuffers, n, framebuffers);
}
void API_ENTRY(glDeleteProgram)(GLuint program) {
    CALL_GL_API(glDeleteProgram, program);
}
void API_ENTRY(glDeleteRenderbuffers)(GLsizei n, const GLuint* renderbuffers) {
    CALL_GL_API(glDeleteRenderbuffers, n, renderbuffers);
}
void API_ENTRY(glDeleteShader)(GLuint shader) {
    CALL_GL_API(glDeleteShader, shader);
}
void API_ENTRY(glDeleteTextures)(GLsizei n, const GLuint* textures) {
    CALL_GL_API(glDeleteTextures, n, textures);
}
void API_ENTRY(glDepthFunc)(GLenum func) {
    CALL_GL_API(glDepthFunc, func);
}
void API_ENTRY(glDepthMask)(GLboolean flag) {
    CALL_GL_API(glDepthMask, flag);
}
void API_ENTRY(glDepthRangef)(GLfloat n, GLfloat f) {
    CALL_GL_API(glDepthRangef, n, f);
}
void API_ENTRY(glDetachShader)(GLuint program, GLuint shader) {
    CALL_GL_API(glDetachShader, program, shader);
}
void API_ENTRY(glDisable)(GLenum cap) {
    CALL_GL_API(glDisable, cap);
}
void API_ENTRY(glDisableVertexAttribArray)(GLuint index) {
    CALL_GL_API(glDisableVertexAttribArray, index);
}
void API_ENTRY(glDrawArrays)(GLenum mode, GLint first, GLsizei count) {
    CALL_GL_API(glDrawArrays, mode, first, count);
}
void API_ENTRY(glDrawElements)(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices) {
    CALL_GL_API(glDrawElements, mode, count, type, indices);
}
void API_ENTRY(glEnable)(GLenum cap) {
    CALL_GL_API(glEnable, cap);
}
void API_ENTRY(glEnableVertexAttribArray)(GLuint index) {
    CALL_GL_API(glEnableVertexAttribArray, index);
}
void API_ENTRY(glFinish)(void) {
    CALL_GL_API(glFinish);
}
void API_ENTRY(glFlush)(void) {
    CALL_GL_API(glFlush);
}
void API_ENTRY(glFramebufferRenderbuffer)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) {
    CALL_GL_API(glFramebufferRenderbuffer, target, attachment, renderbuffertarget, renderbuffer);
}
void API_ENTRY(glFramebufferTexture2D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) {
    CALL_GL_API(glFramebufferTexture2D, target, attachment, textarget, texture, level);
}
void API_ENTRY(glFrontFace)(GLenum mode) {
    CALL_GL_API(glFrontFace, mode);
}
void API_ENTRY(glGenBuffers)(GLsizei n, GLuint* buffers) {
    CALL_GL_API(glGenBuffers, n, buffers);
}
void API_ENTRY(glGenerateMipmap)(GLenum target) {
    CALL_GL_API(glGenerateMipmap, target);
}
void API_ENTRY(glGenFramebuffers)(GLsizei n, GLuint* framebuffers) {
    CALL_GL_API(glGenFramebuffers, n, framebuffers);
}
void API_ENTRY(glGenRenderbuffers)(GLsizei n, GLuint* renderbuffers) {
    CALL_GL_API(glGenRenderbuffers, n, renderbuffers);
}
void API_ENTRY(glGenTextures)(GLsizei n, GLuint* textures) {
    CALL_GL_API(glGenTextures, n, textures);
}
void API_ENTRY(glGetActiveAttrib)(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name) {
    CALL_GL_API(glGetActiveAttrib, program, index, bufsize, length, size, type, name);
}
void API_ENTRY(glGetActiveUniform)(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name) {
    CALL_GL_API(glGetActiveUniform, program, index, bufsize, length, size, type, name);
}
void API_ENTRY(glGetAttachedShaders)(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders) {
    CALL_GL_API(glGetAttachedShaders, program, maxcount, count, shaders);
}
GLint API_ENTRY(glGetAttribLocation)(GLuint program, const GLchar* name) {
    CALL_GL_API_RETURN(glGetAttribLocation, program, name);
}
void API_ENTRY(glGetBooleanv)(GLenum pname, GLboolean* params) {
    CALL_GL_API(glGetBooleanv, pname, params);
}
void API_ENTRY(glGetBufferParameteriv)(GLenum target, GLenum pname, GLint* params) {
    CALL_GL_API(glGetBufferParameteriv, target, pname, params);
}
GLenum API_ENTRY(glGetError)(void) {
    CALL_GL_API_RETURN(glGetError);
}
void API_ENTRY(glGetFloatv)(GLenum pname, GLfloat* params) {
    CALL_GL_API(glGetFloatv, pname, params);
}
void API_ENTRY(glGetFramebufferAttachmentParameteriv)(GLenum target, GLenum attachment, GLenum pname, GLint* params) {
    CALL_GL_API(glGetFramebufferAttachmentParameteriv, target, attachment, pname, params);
}
void API_ENTRY(glGetIntegerv)(GLenum pname, GLint* params) {
    CALL_GL_API(glGetIntegerv, pname, params);
}
void API_ENTRY(glGetProgramiv)(GLuint program, GLenum pname, GLint* params) {
    CALL_GL_API(glGetProgramiv, program, pname, params);
}
void API_ENTRY(glGetProgramInfoLog)(GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog) {
    CALL_GL_API(glGetProgramInfoLog, program, bufsize, length, infolog);
}
void API_ENTRY(glGetRenderbufferParameteriv)(GLenum target, GLenum pname, GLint* params) {
    CALL_GL_API(glGetRenderbufferParameteriv, target, pname, params);
}
void API_ENTRY(glGetShaderiv)(GLuint shader, GLenum pname, GLint* params) {
    CALL_GL_API(glGetShaderiv, shader, pname, params);
}
void API_ENTRY(glGetShaderInfoLog)(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog) {
    CALL_GL_API(glGetShaderInfoLog, shader, bufsize, length, infolog);
}
void API_ENTRY(glGetShaderPrecisionFormat)(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision) {
    CALL_GL_API(glGetShaderPrecisionFormat, shadertype, precisiontype, range, precision);
}
void API_ENTRY(glGetShaderSource)(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source) {
    CALL_GL_API(glGetShaderSource, shader, bufsize, length, source);
}
const GLubyte* API_ENTRY(__glGetString)(GLenum name) {
    CALL_GL_API_RETURN(glGetString, name);
}
void API_ENTRY(glGetTexParameterfv)(GLenum target, GLenum pname, GLfloat* params) {
    CALL_GL_API(glGetTexParameterfv, target, pname, params);
}
void API_ENTRY(glGetTexParameteriv)(GLenum target, GLenum pname, GLint* params) {
    CALL_GL_API(glGetTexParameteriv, target, pname, params);
}
void API_ENTRY(glGetUniformfv)(GLuint program, GLint location, GLfloat* params) {
    CALL_GL_API(glGetUniformfv, program, location, params);
}
void API_ENTRY(glGetUniformiv)(GLuint program, GLint location, GLint* params) {
    CALL_GL_API(glGetUniformiv, program, location, params);
}
GLint API_ENTRY(glGetUniformLocation)(GLuint program, const GLchar* name) {
    CALL_GL_API_RETURN(glGetUniformLocation, program, name);
}
void API_ENTRY(glGetVertexAttribfv)(GLuint index, GLenum pname, GLfloat* params) {
    CALL_GL_API(glGetVertexAttribfv, index, pname, params);
}
void API_ENTRY(glGetVertexAttribiv)(GLuint index, GLenum pname, GLint* params) {
    CALL_GL_API(glGetVertexAttribiv, index, pname, params);
}
void API_ENTRY(glGetVertexAttribPointerv)(GLuint index, GLenum pname, GLvoid** pointer) {
    CALL_GL_API(glGetVertexAttribPointerv, index, pname, pointer);
}
void API_ENTRY(glHint)(GLenum target, GLenum mode) {
    CALL_GL_API(glHint, target, mode);
}
GLboolean API_ENTRY(glIsBuffer)(GLuint buffer) {
    CALL_GL_API_RETURN(glIsBuffer, buffer);
}
GLboolean API_ENTRY(glIsEnabled)(GLenum cap) {
    CALL_GL_API_RETURN(glIsEnabled, cap);
}
GLboolean API_ENTRY(glIsFramebuffer)(GLuint framebuffer) {
    CALL_GL_API_RETURN(glIsFramebuffer, framebuffer);
}
GLboolean API_ENTRY(glIsProgram)(GLuint program) {
    CALL_GL_API_RETURN(glIsProgram, program);
}
GLboolean API_ENTRY(glIsRenderbuffer)(GLuint renderbuffer) {
    CALL_GL_API_RETURN(glIsRenderbuffer, renderbuffer);
}
GLboolean API_ENTRY(glIsShader)(GLuint shader) {
    CALL_GL_API_RETURN(glIsShader, shader);
}
GLboolean API_ENTRY(glIsTexture)(GLuint texture) {
    CALL_GL_API_RETURN(glIsTexture, texture);
}
void API_ENTRY(glLineWidth)(GLfloat width) {
    CALL_GL_API(glLineWidth, width);
}
void API_ENTRY(glLinkProgram)(GLuint program) {
    CALL_GL_API(glLinkProgram, program);
}
void API_ENTRY(glPixelStorei)(GLenum pname, GLint param) {
    CALL_GL_API(glPixelStorei, pname, param);
}
void API_ENTRY(glPolygonOffset)(GLfloat factor, GLfloat units) {
    CALL_GL_API(glPolygonOffset, factor, units);
}
void API_ENTRY(glReadPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels) {
    CALL_GL_API(glReadPixels, x, y, width, height, format, type, pixels);
}
void API_ENTRY(glReleaseShaderCompiler)(void) {
    CALL_GL_API(glReleaseShaderCompiler);
}
void API_ENTRY(glRenderbufferStorage)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) {
    CALL_GL_API(glRenderbufferStorage, target, internalformat, width, height);
}
void API_ENTRY(glSampleCoverage)(GLfloat value, GLboolean invert) {
    CALL_GL_API(glSampleCoverage, value, invert);
}
void API_ENTRY(glScissor)(GLint x, GLint y, GLsizei width, GLsizei height) {
    CALL_GL_API(glScissor, x, y, width, height);
}
void API_ENTRY(glShaderBinary)(GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length) {
    CALL_GL_API(glShaderBinary, n, shaders, binaryformat, binary, length);
}
void API_ENTRY(glShaderSource)(GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length) {
    CALL_GL_API(glShaderSource, shader, count, string, length);
}
void API_ENTRY(glStencilFunc)(GLenum func, GLint ref, GLuint mask) {
    CALL_GL_API(glStencilFunc, func, ref, mask);
}
void API_ENTRY(glStencilFuncSeparate)(GLenum face, GLenum func, GLint ref, GLuint mask) {
    CALL_GL_API(glStencilFuncSeparate, face, func, ref, mask);
}
void API_ENTRY(glStencilMask)(GLuint mask) {
    CALL_GL_API(glStencilMask, mask);
}
void API_ENTRY(glStencilMaskSeparate)(GLenum face, GLuint mask) {
    CALL_GL_API(glStencilMaskSeparate, face, mask);
}
void API_ENTRY(glStencilOp)(GLenum fail, GLenum zfail, GLenum zpass) {
    CALL_GL_API(glStencilOp, fail, zfail, zpass);
}
void API_ENTRY(glStencilOpSeparate)(GLenum face, GLenum fail, GLenum zfail, GLenum zpass) {
    CALL_GL_API(glStencilOpSeparate, face, fail, zfail, zpass);
}
void API_ENTRY(glTexImage2D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels) {
    CALL_GL_API(glTexImage2D, target, level, internalformat, width, height, border, format, type, pixels);
}
void API_ENTRY(glTexParameterf)(GLenum target, GLenum pname, GLfloat param) {
    CALL_GL_API(glTexParameterf, target, pname, param);
}
void API_ENTRY(glTexParameterfv)(GLenum target, GLenum pname, const GLfloat* params) {
    CALL_GL_API(glTexParameterfv, target, pname, params);
}
void API_ENTRY(glTexParameteri)(GLenum target, GLenum pname, GLint param) {
    CALL_GL_API(glTexParameteri, target, pname, param);
}
void API_ENTRY(glTexParameteriv)(GLenum target, GLenum pname, const GLint* params) {
    CALL_GL_API(glTexParameteriv, target, pname, params);
}
void API_ENTRY(glTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels) {
    CALL_GL_API(glTexSubImage2D, target, level, xoffset, yoffset, width, height, format, type, pixels);
}
void API_ENTRY(glUniform1f)(GLint location, GLfloat x) {
    CALL_GL_API(glUniform1f, location, x);
}
void API_ENTRY(glUniform1fv)(GLint location, GLsizei count, const GLfloat* v) {
    CALL_GL_API(glUniform1fv, location, count, v);
}
void API_ENTRY(glUniform1i)(GLint location, GLint x) {
    CALL_GL_API(glUniform1i, location, x);
}
void API_ENTRY(glUniform1iv)(GLint location, GLsizei count, const GLint* v) {
    CALL_GL_API(glUniform1iv, location, count, v);
}
void API_ENTRY(glUniform2f)(GLint location, GLfloat x, GLfloat y) {
    CALL_GL_API(glUniform2f, location, x, y);
}
void API_ENTRY(glUniform2fv)(GLint location, GLsizei count, const GLfloat* v) {
    CALL_GL_API(glUniform2fv, location, count, v);
}
void API_ENTRY(glUniform2i)(GLint location, GLint x, GLint y) {
    CALL_GL_API(glUniform2i, location, x, y);
}
void API_ENTRY(glUniform2iv)(GLint location, GLsizei count, const GLint* v) {
    CALL_GL_API(glUniform2iv, location, count, v);
}
void API_ENTRY(glUniform3f)(GLint location, GLfloat x, GLfloat y, GLfloat z) {
    CALL_GL_API(glUniform3f, location, x, y, z);
}
void API_ENTRY(glUniform3fv)(GLint location, GLsizei count, const GLfloat* v) {
    CALL_GL_API(glUniform3fv, location, count, v);
}
void API_ENTRY(glUniform3i)(GLint location, GLint x, GLint y, GLint z) {
    CALL_GL_API(glUniform3i, location, x, y, z);
}
void API_ENTRY(glUniform3iv)(GLint location, GLsizei count, const GLint* v) {
    CALL_GL_API(glUniform3iv, location, count, v);
}
void API_ENTRY(glUniform4f)(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
    CALL_GL_API(glUniform4f, location, x, y, z, w);
}
void API_ENTRY(glUniform4fv)(GLint location, GLsizei count, const GLfloat* v) {
    CALL_GL_API(glUniform4fv, location, count, v);
}
void API_ENTRY(glUniform4i)(GLint location, GLint x, GLint y, GLint z, GLint w) {
    CALL_GL_API(glUniform4i, location, x, y, z, w);
}
void API_ENTRY(glUniform4iv)(GLint location, GLsizei count, const GLint* v) {
    CALL_GL_API(glUniform4iv, location, count, v);
}
void API_ENTRY(glUniformMatrix2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) {
    CALL_GL_API(glUniformMatrix2fv, location, count, transpose, value);
}
void API_ENTRY(glUniformMatrix3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) {
    CALL_GL_API(glUniformMatrix3fv, location, count, transpose, value);
}
void API_ENTRY(glUniformMatrix4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) {
    CALL_GL_API(glUniformMatrix4fv, location, count, transpose, value);
}
void API_ENTRY(glUseProgram)(GLuint program) {
    CALL_GL_API(glUseProgram, program);
}
void API_ENTRY(glValidateProgram)(GLuint program) {
    CALL_GL_API(glValidateProgram, program);
}
void API_ENTRY(glVertexAttrib1f)(GLuint indx, GLfloat x) {
    CALL_GL_API(glVertexAttrib1f, indx, x);
}
void API_ENTRY(glVertexAttrib1fv)(GLuint indx, const GLfloat* values) {
    CALL_GL_API(glVertexAttrib1fv, indx, values);
}
void API_ENTRY(glVertexAttrib2f)(GLuint indx, GLfloat x, GLfloat y) {
    CALL_GL_API(glVertexAttrib2f, indx, x, y);
}
void API_ENTRY(glVertexAttrib2fv)(GLuint indx, const GLfloat* values) {
    CALL_GL_API(glVertexAttrib2fv, indx, values);
}
void API_ENTRY(glVertexAttrib3f)(GLuint indx, GLfloat x, GLfloat y, GLfloat z) {
    CALL_GL_API(glVertexAttrib3f, indx, x, y, z);
}
void API_ENTRY(glVertexAttrib3fv)(GLuint indx, const GLfloat* values) {
    CALL_GL_API(glVertexAttrib3fv, indx, values);
}
void API_ENTRY(glVertexAttrib4f)(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
    CALL_GL_API(glVertexAttrib4f, indx, x, y, z, w);
}
void API_ENTRY(glVertexAttrib4fv)(GLuint indx, const GLfloat* values) {
    CALL_GL_API(glVertexAttrib4fv, indx, values);
}
void API_ENTRY(glVertexAttribPointer)(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr) {
    CALL_GL_API(glVertexAttribPointer, indx, size, type, normalized, stride, ptr);
}
void API_ENTRY(glViewport)(GLint x, GLint y, GLsizei width, GLsizei height) {
    CALL_GL_API(glViewport, x, y, width, height);
}
void API_ENTRY(glReadBuffer)(GLenum mode) {
    CALL_GL_API(glReadBuffer, mode);
}
void API_ENTRY(glDrawRangeElements)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid* indices) {
    CALL_GL_API(glDrawRangeElements, mode, start, end, count, type, indices);
}
void API_ENTRY(glTexImage3D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels) {
    CALL_GL_API(glTexImage3D, target, level, internalformat, width, height, depth, border, format, type, pixels);
}
void API_ENTRY(glTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels) {
    CALL_GL_API(glTexSubImage3D, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
}
void API_ENTRY(glCopyTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
    CALL_GL_API(glCopyTexSubImage3D, target, level, xoffset, yoffset, zoffset, x, y, width, height);
}
void API_ENTRY(glCompressedTexImage3D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data) {
    CALL_GL_API(glCompressedTexImage3D, target, level, internalformat, width, height, depth, border, imageSize, data);
}
void API_ENTRY(glCompressedTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data) {
    CALL_GL_API(glCompressedTexSubImage3D, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
}
void API_ENTRY(glGenQueries)(GLsizei n, GLuint* ids) {
    CALL_GL_API(glGenQueries, n, ids);
}
void API_ENTRY(glDeleteQueries)(GLsizei n, const GLuint* ids) {
    CALL_GL_API(glDeleteQueries, n, ids);
}
GLboolean API_ENTRY(glIsQuery)(GLuint id) {
    CALL_GL_API_RETURN(glIsQuery, id);
}
void API_ENTRY(glBeginQuery)(GLenum target, GLuint id) {
    CALL_GL_API(glBeginQuery, target, id);
}
void API_ENTRY(glEndQuery)(GLenum target) {
    CALL_GL_API(glEndQuery, target);
}
void API_ENTRY(glGetQueryiv)(GLenum target, GLenum pname, GLint* params) {
    CALL_GL_API(glGetQueryiv, target, pname, params);
}
void API_ENTRY(glGetQueryObjectuiv)(GLuint id, GLenum pname, GLuint* params) {
    CALL_GL_API(glGetQueryObjectuiv, id, pname, params);
}
GLboolean API_ENTRY(glUnmapBuffer)(GLenum target) {
    CALL_GL_API_RETURN(glUnmapBuffer, target);
}
void API_ENTRY(glGetBufferPointerv)(GLenum target, GLenum pname, GLvoid** params) {
    CALL_GL_API(glGetBufferPointerv, target, pname, params);
}
void API_ENTRY(glDrawBuffers)(GLsizei n, const GLenum* bufs) {
    CALL_GL_API(glDrawBuffers, n, bufs);
}
void API_ENTRY(glUniformMatrix2x3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) {
    CALL_GL_API(glUniformMatrix2x3fv, location, count, transpose, value);
}
void API_ENTRY(glUniformMatrix3x2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) {
    CALL_GL_API(glUniformMatrix3x2fv, location, count, transpose, value);
}
void API_ENTRY(glUniformMatrix2x4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) {
    CALL_GL_API(glUniformMatrix2x4fv, location, count, transpose, value);
}
void API_ENTRY(glUniformMatrix4x2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) {
    CALL_GL_API(glUniformMatrix4x2fv, location, count, transpose, value);
}
void API_ENTRY(glUniformMatrix3x4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) {
    CALL_GL_API(glUniformMatrix3x4fv, location, count, transpose, value);
}
void API_ENTRY(glUniformMatrix4x3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) {
    CALL_GL_API(glUniformMatrix4x3fv, location, count, transpose, value);
}
void API_ENTRY(glBlitFramebuffer)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) {
    CALL_GL_API(glBlitFramebuffer, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
}
void API_ENTRY(glRenderbufferStorageMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) {
    CALL_GL_API(glRenderbufferStorageMultisample, target, samples, internalformat, width, height);
}
void API_ENTRY(glFramebufferTextureLayer)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer) {
    CALL_GL_API(glFramebufferTextureLayer, target, attachment, texture, level, layer);
}
GLvoid* API_ENTRY(glMapBufferRange)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access) {
    CALL_GL_API_RETURN(glMapBufferRange, target, offset, length, access);
}
void API_ENTRY(glFlushMappedBufferRange)(GLenum target, GLintptr offset, GLsizeiptr length) {
    CALL_GL_API(glFlushMappedBufferRange, target, offset, length);
}
void API_ENTRY(glBindVertexArray)(GLuint array) {
    CALL_GL_API(glBindVertexArray, array);
}
void API_ENTRY(glDeleteVertexArrays)(GLsizei n, const GLuint* arrays) {
    CALL_GL_API(glDeleteVertexArrays, n, arrays);
}
void API_ENTRY(glGenVertexArrays)(GLsizei n, GLuint* arrays) {
    CALL_GL_API(glGenVertexArrays, n, arrays);
}
GLboolean API_ENTRY(glIsVertexArray)(GLuint array) {
    CALL_GL_API_RETURN(glIsVertexArray, array);
}
void API_ENTRY(glGetIntegeri_v)(GLenum target, GLuint index, GLint* data) {
    CALL_GL_API(glGetIntegeri_v, target, index, data);
}
void API_ENTRY(glBeginTransformFeedback)(GLenum primitiveMode) {
    CALL_GL_API(glBeginTransformFeedback, primitiveMode);
}
void API_ENTRY(glEndTransformFeedback)(void) {
    CALL_GL_API(glEndTransformFeedback);
}
void API_ENTRY(glBindBufferRange)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size) {
    CALL_GL_API(glBindBufferRange, target, index, buffer, offset, size);
}
void API_ENTRY(glBindBufferBase)(GLenum target, GLuint index, GLuint buffer) {
    CALL_GL_API(glBindBufferBase, target, index, buffer);
}
void API_ENTRY(glTransformFeedbackVaryings)(GLuint program, GLsizei count, const GLchar* const* varyings, GLenum bufferMode) {
    CALL_GL_API(glTransformFeedbackVaryings, program, count, varyings, bufferMode);
}
void API_ENTRY(glGetTransformFeedbackVarying)(GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* type, GLchar* name) {
    CALL_GL_API(glGetTransformFeedbackVarying, program, index, bufSize, length, size, type, name);
}
void API_ENTRY(glVertexAttribIPointer)(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid* pointer) {
    CALL_GL_API(glVertexAttribIPointer, index, size, type, stride, pointer);
}
void API_ENTRY(glGetVertexAttribIiv)(GLuint index, GLenum pname, GLint* params) {
    CALL_GL_API(glGetVertexAttribIiv, index, pname, params);
}
void API_ENTRY(glGetVertexAttribIuiv)(GLuint index, GLenum pname, GLuint* params) {
    CALL_GL_API(glGetVertexAttribIuiv, index, pname, params);
}
void API_ENTRY(glVertexAttribI4i)(GLuint index, GLint x, GLint y, GLint z, GLint w) {
    CALL_GL_API(glVertexAttribI4i, index, x, y, z, w);
}
void API_ENTRY(glVertexAttribI4ui)(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w) {
    CALL_GL_API(glVertexAttribI4ui, index, x, y, z, w);
}
void API_ENTRY(glVertexAttribI4iv)(GLuint index, const GLint* v) {
    CALL_GL_API(glVertexAttribI4iv, index, v);
}
void API_ENTRY(glVertexAttribI4uiv)(GLuint index, const GLuint* v) {
    CALL_GL_API(glVertexAttribI4uiv, index, v);
}
void API_ENTRY(glGetUniformuiv)(GLuint program, GLint location, GLuint* params) {
    CALL_GL_API(glGetUniformuiv, program, location, params);
}
GLint API_ENTRY(glGetFragDataLocation)(GLuint program, const GLchar *name) {
    CALL_GL_API_RETURN(glGetFragDataLocation, program, name);
}
void API_ENTRY(glUniform1ui)(GLint location, GLuint v0) {
    CALL_GL_API(glUniform1ui, location, v0);
}
void API_ENTRY(glUniform2ui)(GLint location, GLuint v0, GLuint v1) {
    CALL_GL_API(glUniform2ui, location, v0, v1);
}
void API_ENTRY(glUniform3ui)(GLint location, GLuint v0, GLuint v1, GLuint v2) {
    CALL_GL_API(glUniform3ui, location, v0, v1, v2);
}
void API_ENTRY(glUniform4ui)(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) {
    CALL_GL_API(glUniform4ui, location, v0, v1, v2, v3);
}
void API_ENTRY(glUniform1uiv)(GLint location, GLsizei count, const GLuint* value) {
    CALL_GL_API(glUniform1uiv, location, count, value);
}
void API_ENTRY(glUniform2uiv)(GLint location, GLsizei count, const GLuint* value) {
    CALL_GL_API(glUniform2uiv, location, count, value);
}
void API_ENTRY(glUniform3uiv)(GLint location, GLsizei count, const GLuint* value) {
    CALL_GL_API(glUniform3uiv, location, count, value);
}
void API_ENTRY(glUniform4uiv)(GLint location, GLsizei count, const GLuint* value) {
    CALL_GL_API(glUniform4uiv, location, count, value);
}
void API_ENTRY(glClearBufferiv)(GLenum buffer, GLint drawbuffer, const GLint* value) {
    CALL_GL_API(glClearBufferiv, buffer, drawbuffer, value);
}
void API_ENTRY(glClearBufferuiv)(GLenum buffer, GLint drawbuffer, const GLuint* value) {
    CALL_GL_API(glClearBufferuiv, buffer, drawbuffer, value);
}
void API_ENTRY(glClearBufferfv)(GLenum buffer, GLint drawbuffer, const GLfloat* value) {
    CALL_GL_API(glClearBufferfv, buffer, drawbuffer, value);
}
void API_ENTRY(glClearBufferfi)(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil) {
    CALL_GL_API(glClearBufferfi, buffer, drawbuffer, depth, stencil);
}
const GLubyte* API_ENTRY(glGetStringi)(GLenum name, GLuint index) {
    CALL_GL_API_RETURN(glGetStringi, name, index);
}
void API_ENTRY(glCopyBufferSubData)(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size) {
    CALL_GL_API(glCopyBufferSubData, readTarget, writeTarget, readOffset, writeOffset, size);
}
void API_ENTRY(glGetUniformIndices)(GLuint program, GLsizei uniformCount, const GLchar* const* uniformNames, GLuint* uniformIndices) {
    CALL_GL_API(glGetUniformIndices, program, uniformCount, uniformNames, uniformIndices);
}
void API_ENTRY(glGetActiveUniformsiv)(GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params) {
    CALL_GL_API(glGetActiveUniformsiv, program, uniformCount, uniformIndices, pname, params);
}
GLuint API_ENTRY(glGetUniformBlockIndex)(GLuint program, const GLchar* uniformBlockName) {
    CALL_GL_API_RETURN(glGetUniformBlockIndex, program, uniformBlockName);
}
void API_ENTRY(glGetActiveUniformBlockiv)(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params) {
    CALL_GL_API(glGetActiveUniformBlockiv, program, uniformBlockIndex, pname, params);
}
void API_ENTRY(glGetActiveUniformBlockName)(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName) {
    CALL_GL_API(glGetActiveUniformBlockName, program, uniformBlockIndex, bufSize, length, uniformBlockName);
}
void API_ENTRY(glUniformBlockBinding)(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding) {
    CALL_GL_API(glUniformBlockBinding, program, uniformBlockIndex, uniformBlockBinding);
}
void API_ENTRY(glDrawArraysInstanced)(GLenum mode, GLint first, GLsizei count, GLsizei instanceCount) {
    CALL_GL_API(glDrawArraysInstanced, mode, first, count, instanceCount);
}
void API_ENTRY(glDrawElementsInstanced)(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices, GLsizei instanceCount) {
    CALL_GL_API(glDrawElementsInstanced, mode, count, type, indices, instanceCount);
}
GLsync API_ENTRY(glFenceSync)(GLenum condition, GLbitfield flags) {
    CALL_GL_API_RETURN(glFenceSync, condition, flags);
}
GLboolean API_ENTRY(glIsSync)(GLsync sync) {
    CALL_GL_API_RETURN(glIsSync, sync);
}
void API_ENTRY(glDeleteSync)(GLsync sync) {
    CALL_GL_API(glDeleteSync, sync);
}
GLenum API_ENTRY(glClientWaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeout) {
    CALL_GL_API_RETURN(glClientWaitSync, sync, flags, timeout);
}
void API_ENTRY(glWaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeout) {
    CALL_GL_API(glWaitSync, sync, flags, timeout);
}
void API_ENTRY(glGetInteger64v)(GLenum pname, GLint64* params) {
    CALL_GL_API(glGetInteger64v, pname, params);
}
void API_ENTRY(glGetSynciv)(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values) {
    CALL_GL_API(glGetSynciv, sync, pname, bufSize, length, values);
}
void API_ENTRY(glGetInteger64i_v)(GLenum target, GLuint index, GLint64* data) {
    CALL_GL_API(glGetInteger64i_v, target, index, data);
}
void API_ENTRY(glGetBufferParameteri64v)(GLenum target, GLenum pname, GLint64* params) {
    CALL_GL_API(glGetBufferParameteri64v, target, pname, params);
}
void API_ENTRY(glGenSamplers)(GLsizei count, GLuint* samplers) {
    CALL_GL_API(glGenSamplers, count, samplers);
}
void API_ENTRY(glDeleteSamplers)(GLsizei count, const GLuint* samplers) {
    CALL_GL_API(glDeleteSamplers, count, samplers);
}
GLboolean API_ENTRY(glIsSampler)(GLuint sampler) {
    CALL_GL_API_RETURN(glIsSampler, sampler);
}
void API_ENTRY(glBindSampler)(GLuint unit, GLuint sampler) {
    CALL_GL_API(glBindSampler, unit, sampler);
}
void API_ENTRY(glSamplerParameteri)(GLuint sampler, GLenum pname, GLint param) {
    CALL_GL_API(glSamplerParameteri, sampler, pname, param);
}
void API_ENTRY(glSamplerParameteriv)(GLuint sampler, GLenum pname, const GLint* param) {
    CALL_GL_API(glSamplerParameteriv, sampler, pname, param);
}
void API_ENTRY(glSamplerParameterf)(GLuint sampler, GLenum pname, GLfloat param) {
    CALL_GL_API(glSamplerParameterf, sampler, pname, param);
}
void API_ENTRY(glSamplerParameterfv)(GLuint sampler, GLenum pname, const GLfloat* param) {
    CALL_GL_API(glSamplerParameterfv, sampler, pname, param);
}
void API_ENTRY(glGetSamplerParameteriv)(GLuint sampler, GLenum pname, GLint* params) {
    CALL_GL_API(glGetSamplerParameteriv, sampler, pname, params);
}
void API_ENTRY(glGetSamplerParameterfv)(GLuint sampler, GLenum pname, GLfloat* params) {
    CALL_GL_API(glGetSamplerParameterfv, sampler, pname, params);
}
void API_ENTRY(glVertexAttribDivisor)(GLuint index, GLuint divisor) {
    CALL_GL_API(glVertexAttribDivisor, index, divisor);
}
void API_ENTRY(glBindTransformFeedback)(GLenum target, GLuint id) {
    CALL_GL_API(glBindTransformFeedback, target, id);
}
void API_ENTRY(glDeleteTransformFeedbacks)(GLsizei n, const GLuint* ids) {
    CALL_GL_API(glDeleteTransformFeedbacks, n, ids);
}
void API_ENTRY(glGenTransformFeedbacks)(GLsizei n, GLuint* ids) {
    CALL_GL_API(glGenTransformFeedbacks, n, ids);
}
GLboolean API_ENTRY(glIsTransformFeedback)(GLuint id) {
    CALL_GL_API_RETURN(glIsTransformFeedback, id);
}
void API_ENTRY(glPauseTransformFeedback)(void) {
    CALL_GL_API(glPauseTransformFeedback);
}
void API_ENTRY(glResumeTransformFeedback)(void) {
    CALL_GL_API(glResumeTransformFeedback);
}
void API_ENTRY(glGetProgramBinary)(GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary) {
    CALL_GL_API(glGetProgramBinary, program, bufSize, length, binaryFormat, binary);
}
void API_ENTRY(glProgramBinary)(GLuint program, GLenum binaryFormat, const GLvoid* binary, GLsizei length) {
    CALL_GL_API(glProgramBinary, program, binaryFormat, binary, length);
}
void API_ENTRY(glProgramParameteri)(GLuint program, GLenum pname, GLint value) {
    CALL_GL_API(glProgramParameteri, program, pname, value);
}
void API_ENTRY(glInvalidateFramebuffer)(GLenum target, GLsizei numAttachments, const GLenum* attachments) {
    CALL_GL_API(glInvalidateFramebuffer, target, numAttachments, attachments);
}
void API_ENTRY(glInvalidateSubFramebuffer)(GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height) {
    CALL_GL_API(glInvalidateSubFramebuffer, target, numAttachments, attachments, x, y, width, height);
}
void API_ENTRY(glTexStorage2D)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) {
    CALL_GL_API(glTexStorage2D, target, levels, internalformat, width, height);
}
void API_ENTRY(glTexStorage3D)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) {
    CALL_GL_API(glTexStorage3D, target, levels, internalformat, width, height, depth);
}
void API_ENTRY(glGetInternalformativ)(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params) {
    CALL_GL_API(glGetInternalformativ, target, internalformat, pname, bufSize, params);
}
