
// ** file automatically generated by glgen -- do not edit manually **

#include <QOpenGLContext>
#include <QtGui/qopenglfunctions_3_1.h>

#include "funcs.h"

void *gl3_1_funcs() {
	QOpenGLFunctions_3_1* funcs = QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_3_1>();
	if (!funcs) {
		return 0;
	}
	funcs->initializeOpenGLFunctions();
	return funcs;
}


void gl3_1_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glViewport(x, y, width, height);
}

void gl3_1_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glDepthRange(nearVal, farVal);
}

GLboolean gl3_1_glIsEnabled(void *_glfuncs, GLenum cap)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	return _qglfuncs->glIsEnabled(cap);
}

void gl3_1_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetTexLevelParameteriv(target, level, pname, params);
}

void gl3_1_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetTexLevelParameterfv(target, level, pname, params);
}

void gl3_1_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetTexParameteriv(target, pname, params);
}

void gl3_1_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetTexParameterfv(target, pname, params);
}

void gl3_1_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetTexImage(target, level, format, gltype, pixels);
}

void gl3_1_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetIntegerv(pname, params);
}

void gl3_1_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetFloatv(pname, params);
}

GLenum gl3_1_glGetError(void *_glfuncs)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	return _qglfuncs->glGetError();
}

void gl3_1_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetDoublev(pname, params);
}

void gl3_1_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetBooleanv(pname, params);
}

void gl3_1_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glReadPixels(x, y, width, height, format, gltype, pixels);
}

void gl3_1_glReadBuffer(void *_glfuncs, GLenum mode)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glReadBuffer(mode);
}

void gl3_1_glPixelStorei(void *_glfuncs, GLenum pname, GLint param)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glPixelStorei(pname, param);
}

void gl3_1_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glPixelStoref(pname, param);
}

void gl3_1_glDepthFunc(void *_glfuncs, GLenum glfunc)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glDepthFunc(glfunc);
}

void gl3_1_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glStencilOp(fail, zfail, zpass);
}

void gl3_1_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glStencilFunc(glfunc, ref, mask);
}

void gl3_1_glLogicOp(void *_glfuncs, GLenum opcode)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glLogicOp(opcode);
}

void gl3_1_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glBlendFunc(sfactor, dfactor);
}

void gl3_1_glFlush(void *_glfuncs)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glFlush();
}

void gl3_1_glFinish(void *_glfuncs)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glFinish();
}

void gl3_1_glEnable(void *_glfuncs, GLenum cap)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glEnable(cap);
}

void gl3_1_glDisable(void *_glfuncs, GLenum cap)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glDisable(cap);
}

void gl3_1_glDepthMask(void *_glfuncs, GLboolean flag)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glDepthMask(flag);
}

void gl3_1_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glColorMask(red, green, blue, alpha);
}

void gl3_1_glStencilMask(void *_glfuncs, GLuint mask)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glStencilMask(mask);
}

void gl3_1_glClearDepth(void *_glfuncs, GLdouble depth)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glClearDepth(depth);
}

void gl3_1_glClearStencil(void *_glfuncs, GLint s)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glClearStencil(s);
}

void gl3_1_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glClearColor(red, green, blue, alpha);
}

void gl3_1_glClear(void *_glfuncs, GLbitfield mask)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glClear(mask);
}

void gl3_1_glDrawBuffer(void *_glfuncs, GLenum mode)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glDrawBuffer(mode);
}

void gl3_1_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glTexImage2D(target, level, internalFormat, width, height, border, format, gltype, pixels);
}

void gl3_1_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glTexImage1D(target, level, internalFormat, width, border, format, gltype, pixels);
}

void gl3_1_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glTexParameteriv(target, pname, params);
}

void gl3_1_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glTexParameteri(target, pname, param);
}

void gl3_1_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glTexParameterfv(target, pname, params);
}

void gl3_1_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glTexParameterf(target, pname, param);
}

void gl3_1_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glScissor(x, y, width, height);
}

void gl3_1_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glPolygonMode(face, mode);
}

void gl3_1_glPointSize(void *_glfuncs, GLfloat size)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glPointSize(size);
}

void gl3_1_glLineWidth(void *_glfuncs, GLfloat width)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glLineWidth(width);
}

void gl3_1_glHint(void *_glfuncs, GLenum target, GLenum mode)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glHint(target, mode);
}

void gl3_1_glFrontFace(void *_glfuncs, GLenum mode)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glFrontFace(mode);
}

void gl3_1_glCullFace(void *_glfuncs, GLenum mode)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glCullFace(mode);
}

void gl3_1_glIndexubv(void *_glfuncs, const GLubyte* c)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glIndexubv(c);
}

void gl3_1_glIndexub(void *_glfuncs, GLubyte c)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glIndexub(c);
}

GLboolean gl3_1_glIsTexture(void *_glfuncs, GLuint texture)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	return _qglfuncs->glIsTexture(texture);
}

void gl3_1_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGenTextures(n, textures);
}

void gl3_1_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glDeleteTextures(n, textures);
}

void gl3_1_glBindTexture(void *_glfuncs, GLenum target, GLuint texture)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glBindTexture(target, texture);
}

void gl3_1_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, gltype, pixels);
}

void gl3_1_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glTexSubImage1D(target, level, xoffset, width, format, gltype, pixels);
}

void gl3_1_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
}

void gl3_1_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glCopyTexSubImage1D(target, level, xoffset, x, y, width);
}

void gl3_1_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glCopyTexImage2D(target, level, internalFormat, x, y, width, height, border);
}

void gl3_1_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glCopyTexImage1D(target, level, internalFormat, x, y, width, border);
}

void gl3_1_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glPolygonOffset(factor, units);
}

void gl3_1_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glDrawElements(mode, count, gltype, indices);
}

void gl3_1_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glDrawArrays(mode, first, count);
}

void gl3_1_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
}

void gl3_1_glTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum gltype, const GLvoid* pixels)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, gltype, pixels);
}

void gl3_1_glTexImage3D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glTexImage3D(target, level, internalFormat, width, height, depth, border, format, gltype, pixels);
}

void gl3_1_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glDrawRangeElements(mode, start, end, count, gltype, indices);
}

void gl3_1_glBlendEquation(void *_glfuncs, GLenum mode)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glBlendEquation(mode);
}

void gl3_1_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glBlendColor(red, green, blue, alpha);
}

void gl3_1_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetCompressedTexImage(target, level, img);
}

void gl3_1_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data);
}

void gl3_1_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
}

void gl3_1_glCompressedTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
}

void gl3_1_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glCompressedTexImage1D(target, level, internalFormat, width, border, imageSize, data);
}

void gl3_1_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data);
}

void gl3_1_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glCompressedTexImage3D(target, level, internalFormat, width, height, depth, border, imageSize, data);
}

void gl3_1_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glSampleCoverage(value, invert);
}

void gl3_1_glActiveTexture(void *_glfuncs, GLenum texture)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glActiveTexture(texture);
}

void gl3_1_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glPointParameteriv(pname, params);
}

void gl3_1_glPointParameteri(void *_glfuncs, GLenum pname, GLint param)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glPointParameteri(pname, param);
}

void gl3_1_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glPointParameterfv(pname, params);
}

void gl3_1_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glPointParameterf(pname, param);
}

void gl3_1_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glMultiDrawArrays(mode, first, count, drawcount);
}

void gl3_1_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
}

void gl3_1_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetBufferParameteriv(target, pname, params);
}

GLboolean gl3_1_glUnmapBuffer(void *_glfuncs, GLenum target)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	return _qglfuncs->glUnmapBuffer(target);
}

void gl3_1_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetBufferSubData(target, offset, size, data);
}

void gl3_1_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glBufferSubData(target, offset, size, data);
}

void gl3_1_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glBufferData(target, size, data, usage);
}

GLboolean gl3_1_glIsBuffer(void *_glfuncs, GLuint buffer)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	return _qglfuncs->glIsBuffer(buffer);
}

void gl3_1_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGenBuffers(n, buffers);
}

void gl3_1_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glDeleteBuffers(n, buffers);
}

void gl3_1_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glBindBuffer(target, buffer);
}

void gl3_1_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetQueryObjectuiv(id, pname, params);
}

void gl3_1_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetQueryObjectiv(id, pname, params);
}

void gl3_1_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetQueryiv(target, pname, params);
}

void gl3_1_glEndQuery(void *_glfuncs, GLenum target)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glEndQuery(target);
}

void gl3_1_glBeginQuery(void *_glfuncs, GLenum target, GLuint id)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glBeginQuery(target, id);
}

GLboolean gl3_1_glIsQuery(void *_glfuncs, GLuint id)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	return _qglfuncs->glIsQuery(id);
}

void gl3_1_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glDeleteQueries(n, ids);
}

void gl3_1_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGenQueries(n, ids);
}

void gl3_1_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glVertexAttribPointer(index, size, gltype, normalized, stride, offset);
}

void gl3_1_glValidateProgram(void *_glfuncs, GLuint program)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glValidateProgram(program);
}

void gl3_1_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniformMatrix4fv(location, count, transpose, value);
}

void gl3_1_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniformMatrix3fv(location, count, transpose, value);
}

void gl3_1_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniformMatrix2fv(location, count, transpose, value);
}

void gl3_1_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniform4iv(location, count, value);
}

void gl3_1_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniform3iv(location, count, value);
}

void gl3_1_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniform2iv(location, count, value);
}

void gl3_1_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniform1iv(location, count, value);
}

void gl3_1_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniform4fv(location, count, value);
}

void gl3_1_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniform3fv(location, count, value);
}

void gl3_1_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniform2fv(location, count, value);
}

void gl3_1_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniform1fv(location, count, value);
}

void gl3_1_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniform4i(location, v0, v1, v2, v3);
}

void gl3_1_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniform3i(location, v0, v1, v2);
}

void gl3_1_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniform2i(location, v0, v1);
}

void gl3_1_glUniform1i(void *_glfuncs, GLint location, GLint v0)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniform1i(location, v0);
}

void gl3_1_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniform4f(location, v0, v1, v2, v3);
}

void gl3_1_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniform3f(location, v0, v1, v2);
}

void gl3_1_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniform2f(location, v0, v1);
}

void gl3_1_glUniform1f(void *_glfuncs, GLint location, GLfloat v0)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniform1f(location, v0);
}

void gl3_1_glUseProgram(void *_glfuncs, GLuint program)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUseProgram(program);
}

void gl3_1_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glShaderSource(shader, count, source, length);
}

void gl3_1_glLinkProgram(void *_glfuncs, GLuint program)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glLinkProgram(program);
}

GLboolean gl3_1_glIsShader(void *_glfuncs, GLuint shader)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	return _qglfuncs->glIsShader(shader);
}

GLboolean gl3_1_glIsProgram(void *_glfuncs, GLuint program)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	return _qglfuncs->glIsProgram(program);
}

void gl3_1_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetVertexAttribiv(index, pname, params);
}

void gl3_1_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetVertexAttribfv(index, pname, params);
}

void gl3_1_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetVertexAttribdv(index, pname, params);
}

void gl3_1_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetUniformiv(program, location, params);
}

void gl3_1_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetUniformfv(program, location, params);
}

GLint gl3_1_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	return _qglfuncs->glGetUniformLocation(program, name);
}

void gl3_1_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetShaderSource(shader, bufSize, length, source);
}

void gl3_1_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetShaderInfoLog(shader, bufSize, length, infoLog);
}

void gl3_1_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetShaderiv(shader, pname, params);
}

void gl3_1_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetProgramInfoLog(program, bufSize, length, infoLog);
}

void gl3_1_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetProgramiv(program, pname, params);
}

GLint gl3_1_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	return _qglfuncs->glGetAttribLocation(program, name);
}

void gl3_1_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetAttachedShaders(program, maxCount, count, obj);
}

void gl3_1_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetActiveUniform(program, index, bufSize, length, size, gltype, name);
}

void gl3_1_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetActiveAttrib(program, index, bufSize, length, size, gltype, name);
}

void gl3_1_glEnableVertexAttribArray(void *_glfuncs, GLuint index)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glEnableVertexAttribArray(index);
}

void gl3_1_glDisableVertexAttribArray(void *_glfuncs, GLuint index)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glDisableVertexAttribArray(index);
}

void gl3_1_glDetachShader(void *_glfuncs, GLuint program, GLuint shader)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glDetachShader(program, shader);
}

void gl3_1_glDeleteShader(void *_glfuncs, GLuint shader)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glDeleteShader(shader);
}

void gl3_1_glDeleteProgram(void *_glfuncs, GLuint program)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glDeleteProgram(program);
}

GLuint gl3_1_glCreateShader(void *_glfuncs, GLenum gltype)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	return _qglfuncs->glCreateShader(gltype);
}

GLuint gl3_1_glCreateProgram(void *_glfuncs)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	return _qglfuncs->glCreateProgram();
}

void gl3_1_glCompileShader(void *_glfuncs, GLuint shader)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glCompileShader(shader);
}

void gl3_1_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glBindAttribLocation(program, index, name);
}

void gl3_1_glAttachShader(void *_glfuncs, GLuint program, GLuint shader)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glAttachShader(program, shader);
}

void gl3_1_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glStencilMaskSeparate(face, mask);
}

void gl3_1_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glStencilFuncSeparate(face, glfunc, ref, mask);
}

void gl3_1_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glStencilOpSeparate(face, sfail, dpfail, dppass);
}

void gl3_1_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glDrawBuffers(n, bufs);
}

void gl3_1_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glBlendEquationSeparate(modeRGB, modeAlpha);
}

void gl3_1_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniformMatrix4x3fv(location, count, transpose, value);
}

void gl3_1_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniformMatrix3x4fv(location, count, transpose, value);
}

void gl3_1_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniformMatrix4x2fv(location, count, transpose, value);
}

void gl3_1_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniformMatrix2x4fv(location, count, transpose, value);
}

void gl3_1_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniformMatrix3x2fv(location, count, transpose, value);
}

void gl3_1_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniformMatrix2x3fv(location, count, transpose, value);
}

GLboolean gl3_1_glIsVertexArray(void *_glfuncs, GLuint array)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	return _qglfuncs->glIsVertexArray(array);
}

void gl3_1_glGenVertexArrays(void *_glfuncs, GLsizei n, GLuint* arrays)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGenVertexArrays(n, arrays);
}

void gl3_1_glDeleteVertexArrays(void *_glfuncs, GLsizei n, const GLuint* arrays)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glDeleteVertexArrays(n, arrays);
}

void gl3_1_glBindVertexArray(void *_glfuncs, GLuint array)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glBindVertexArray(array);
}

void gl3_1_glFlushMappedBufferRange(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr length)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glFlushMappedBufferRange(target, offset, length);
}

void gl3_1_glFramebufferTextureLayer(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glFramebufferTextureLayer(target, attachment, texture, level, layer);
}

void gl3_1_glRenderbufferStorageMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glRenderbufferStorageMultisample(target, samples, internalFormat, width, height);
}

void gl3_1_glBlitFramebuffer(void *_glfuncs, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
}

void gl3_1_glGenerateMipmap(void *_glfuncs, GLenum target)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGenerateMipmap(target);
}

void gl3_1_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetFramebufferAttachmentParameteriv(target, attachment, pname, params);
}

void gl3_1_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
}

void gl3_1_glFramebufferTexture3D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glFramebufferTexture3D(target, attachment, textarget, texture, level, zoffset);
}

void gl3_1_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glFramebufferTexture2D(target, attachment, textarget, texture, level);
}

void gl3_1_glFramebufferTexture1D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glFramebufferTexture1D(target, attachment, textarget, texture, level);
}

GLenum gl3_1_glCheckFramebufferStatus(void *_glfuncs, GLenum target)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	return _qglfuncs->glCheckFramebufferStatus(target);
}

void gl3_1_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGenFramebuffers(n, framebuffers);
}

void gl3_1_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glDeleteFramebuffers(n, framebuffers);
}

void gl3_1_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glBindFramebuffer(target, framebuffer);
}

GLboolean gl3_1_glIsFramebuffer(void *_glfuncs, GLuint framebuffer)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	return _qglfuncs->glIsFramebuffer(framebuffer);
}

void gl3_1_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetRenderbufferParameteriv(target, pname, params);
}

void gl3_1_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glRenderbufferStorage(target, internalFormat, width, height);
}

void gl3_1_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGenRenderbuffers(n, renderbuffers);
}

void gl3_1_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glDeleteRenderbuffers(n, renderbuffers);
}

void gl3_1_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glBindRenderbuffer(target, renderbuffer);
}

GLboolean gl3_1_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	return _qglfuncs->glIsRenderbuffer(renderbuffer);
}

void gl3_1_glClearBufferfi(void *_glfuncs, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glClearBufferfi(buffer, drawbuffer, depth, stencil);
}

void gl3_1_glClearBufferfv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLfloat* value)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glClearBufferfv(buffer, drawbuffer, value);
}

void gl3_1_glClearBufferuiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLuint* value)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glClearBufferuiv(buffer, drawbuffer, value);
}

void gl3_1_glClearBufferiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLint* value)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glClearBufferiv(buffer, drawbuffer, value);
}

void gl3_1_glGetTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, GLuint* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetTexParameterIuiv(target, pname, params);
}

void gl3_1_glGetTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetTexParameterIiv(target, pname, params);
}

void gl3_1_glTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, const GLuint* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glTexParameterIuiv(target, pname, params);
}

void gl3_1_glTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glTexParameterIiv(target, pname, params);
}

void gl3_1_glUniform4uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniform4uiv(location, count, value);
}

void gl3_1_glUniform3uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniform3uiv(location, count, value);
}

void gl3_1_glUniform2uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniform2uiv(location, count, value);
}

void gl3_1_glUniform1uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniform1uiv(location, count, value);
}

void gl3_1_glUniform4ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniform4ui(location, v0, v1, v2, v3);
}

void gl3_1_glUniform3ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniform3ui(location, v0, v1, v2);
}

void gl3_1_glUniform2ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniform2ui(location, v0, v1);
}

void gl3_1_glUniform1ui(void *_glfuncs, GLint location, GLuint v0)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniform1ui(location, v0);
}

GLint gl3_1_glGetFragDataLocation(void *_glfuncs, GLuint program, const GLchar* name)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	return _qglfuncs->glGetFragDataLocation(program, name);
}

void gl3_1_glBindFragDataLocation(void *_glfuncs, GLuint program, GLuint color, const GLchar* name)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glBindFragDataLocation(program, color, name);
}

void gl3_1_glGetUniformuiv(void *_glfuncs, GLuint program, GLint location, GLuint* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetUniformuiv(program, location, params);
}

void gl3_1_glGetVertexAttribIuiv(void *_glfuncs, GLuint index, GLenum pname, GLuint* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetVertexAttribIuiv(index, pname, params);
}

void gl3_1_glGetVertexAttribIiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetVertexAttribIiv(index, pname, params);
}

void gl3_1_glVertexAttribIPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glVertexAttribIPointer(index, size, gltype, stride, pointer);
}

void gl3_1_glEndConditionalRender(void *_glfuncs)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glEndConditionalRender();
}

void gl3_1_glBeginConditionalRender(void *_glfuncs, GLuint id, GLenum mode)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glBeginConditionalRender(id, mode);
}

void gl3_1_glClampColor(void *_glfuncs, GLenum target, GLenum clamp)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glClampColor(target, clamp);
}

void gl3_1_glGetTransformFeedbackVarying(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* gltype, GLchar* name)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetTransformFeedbackVarying(program, index, bufSize, length, size, gltype, name);
}

void gl3_1_glBindBufferBase(void *_glfuncs, GLenum target, GLuint index, GLuint buffer)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glBindBufferBase(target, index, buffer);
}

void gl3_1_glBindBufferRange(void *_glfuncs, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glBindBufferRange(target, index, buffer, offset, size);
}

void gl3_1_glEndTransformFeedback(void *_glfuncs)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glEndTransformFeedback();
}

void gl3_1_glBeginTransformFeedback(void *_glfuncs, GLenum primitiveMode)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glBeginTransformFeedback(primitiveMode);
}

GLboolean gl3_1_glIsEnabledi(void *_glfuncs, GLenum target, GLuint index)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	return _qglfuncs->glIsEnabledi(target, index);
}

void gl3_1_glDisablei(void *_glfuncs, GLenum target, GLuint index)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glDisablei(target, index);
}

void gl3_1_glEnablei(void *_glfuncs, GLenum target, GLuint index)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glEnablei(target, index);
}

void gl3_1_glGetIntegeri_v(void *_glfuncs, GLenum target, GLuint index, GLint* data)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetIntegeri_v(target, index, data);
}

void gl3_1_glGetBooleani_v(void *_glfuncs, GLenum target, GLuint index, GLboolean* data)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetBooleani_v(target, index, data);
}

void gl3_1_glColorMaski(void *_glfuncs, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glColorMaski(index, r, g, b, a);
}

void gl3_1_glCopyBufferSubData(void *_glfuncs, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glCopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size);
}

void gl3_1_glUniformBlockBinding(void *_glfuncs, GLuint program, GLuint v0, GLuint v1)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glUniformBlockBinding(program, v0, v1);
}

void gl3_1_glGetActiveUniformBlockName(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetActiveUniformBlockName(program, uniformBlockIndex, bufSize, length, uniformBlockName);
}

void gl3_1_glGetActiveUniformBlockiv(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetActiveUniformBlockiv(program, uniformBlockIndex, pname, params);
}

GLuint gl3_1_glGetUniformBlockIndex(void *_glfuncs, GLuint program, const GLchar* uniformBlockName)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	return _qglfuncs->glGetUniformBlockIndex(program, uniformBlockName);
}

void gl3_1_glGetActiveUniformName(void *_glfuncs, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetActiveUniformName(program, uniformIndex, bufSize, length, uniformName);
}

void gl3_1_glGetActiveUniformsiv(void *_glfuncs, GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glGetActiveUniformsiv(program, uniformCount, uniformIndices, pname, params);
}

void gl3_1_glPrimitiveRestartIndex(void *_glfuncs, GLuint index)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glPrimitiveRestartIndex(index);
}

void gl3_1_glTexBuffer(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glTexBuffer(target, internalFormat, buffer);
}

void gl3_1_glDrawElementsInstanced(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glDrawElementsInstanced(mode, count, gltype, indices, instancecount);
}

void gl3_1_glDrawArraysInstanced(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount)
{
	QOpenGLFunctions_3_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_1*>(_glfuncs);
	_qglfuncs->glDrawArraysInstanced(mode, first, count, instancecount);
}

